我的代码中有一个问题,我要求查找字符串中字符出现的次数,但我一直有一个异常错误,我不知道为什么?以下是我的代码:
import java.io.IOException;
import java.util.*;
import java.lang.*;
public class LabOne1 {
public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a string: ");
String strUser = scan.next().toLowerCase();
System.out.print("Enter a character: ");
char charUser = (char) System.in.read();
Character.toLowerCase(charUser);
System.out.print(charUser + "occurs " + count(strUser, charUser) +
" times in the string " + strUser);
}
public static int count(String str, char a){
int counter = 0;
for(int i = 0; i <= str.length(); i++){
if (str.charAt(i) == a){
counter++;
}
}
return counter;
}
}
更新:问题出在循环中,因为迭代器应该大于零,而不是等于或大于零。
for(int i = 0; i < str.length(); i++)
1条答案
按热度按时间qv7cva1a1#
您的字符串索引不正确。有效索引介于0(包括0)和
str.length()
(不包括str.length()
)之间。 您的循环可按如下方式工作:或者,您可以执行类似以下操作: