我知道simillar问题已被问到,但它们都有同样的问题:在循环内部它们有类似的东西
i <= aString.lenth()
Run Code Online (Sandbox Code Playgroud)
我用了
i < phrase.length();
Run Code Online (Sandbox Code Playgroud)
我仍然得到错误.我也试过了
i < phrase.length()-1;
Run Code Online (Sandbox Code Playgroud)
有什么想法有什么不对?
谢谢.
public class WordPlay {
public boolean isVowel(char c) {
if(c=='a' || c=='A' || c=='e' || c=='E' || c=='i' || c=='I' || c=='o' || c=='O' || c=='u' || c=='U') {
return true;
}
else
{
return false;
}
}
public void testIsVowel () {
System.out.println(isVowel('F'));
}
public String replaceVowels (String phrase, char ch){
StringBuilder replaced = new StringBuilder(phrase);
for (int i = 0; i<phrase.length(); i++) {
char currChar = phrase.charAt(i);
if (isVowel(currChar)){
//the line below causes the error
replaced.setCharAt(currChar, ch);
}
}
return replaced.toString();
}
public void testReplaceVowels() {
System.out.println(replaceVowels("Hello World", '*'));
}
}
Run Code Online (Sandbox Code Playgroud)
在你的电话里 StringBuilder.setCharAt
replaced.setCharAt(currChar, ch);
Run Code Online (Sandbox Code Playgroud)
第一个参数应该是i,而不是currChar:
replaced.setCharAt(i, ch);
Run Code Online (Sandbox Code Playgroud)
您应该传递要设置char 的索引,而不是字符本身.
currChar它的int值可能高于你的长度StringBuilder,这导致异常,但如果不是,你会得到奇怪的输出而没有例外,这更糟糕.
| 归档时间: |
|
| 查看次数: |
2895 次 |
| 最近记录: |