我目前正在从事Java练习。我试图对使用String
输入并使用JOptionPane
进行计数的indexOf
变量中的字符实例进行计数。到目前为止,我已经知道了这一点,但是由于在测试中该字符类型的字母数错误而返回计数,因此无法正常工作。
String input_text;
input_text = JOptionPane.showInputDialog("Write in some text");
System.out.println("Index of e in input_text: "+input_text.indexOf('e'));
然后,用户需要猜测所写字符串中字母的正确数量。我为此尝试了各种方法,但遇到了麻烦。
答案 0 :(得分:0)
字符串indexOf函数在这里不能解决您的问题,因为它旨在为您提供所需子字符串(在这种情况下为特定字符)首次出现的索引。 / p>
您需要遍历字符串中的字符并计算与特定字符的匹配项。
String input_text;
input_text = JOptionPane.showInputDialog("Write in some text");
System.out.println("Index of e in input_text: "+ getMatchCount(input_text, 'e'));
int getMatchCount(String input, char charToMatch) {
int count = 0;
for(int i = 0; i < input.length(); i++) {
if(input.charAt(i) == charToMatch) {
count++;
}
}
return count;
}
您还可以直接使用Apache Commons StringUtils的countMatches函数。
此外,如果您打算在输入字符串中查找多个(不同)字符的计数,则可以为输入字符串中存在的每个字符创建一个出现计数图,这样您就不必当要求输入不同字符的匹配计数时,一次又一次地遍历整个字符串。
答案 1 :(得分:0)
感谢这里的所有评论,我设法解决了这样的字符循环
public static void main(String[] args) {
String s1="this is a sentence";
char ch=s1.charAt(s1.indexOf('e'));
int count = 0;
for(int i=0;i<s1.length();i++) {
if(s1.charAt(i)=='e'){
count++;
}
}
System.out.println("Total count of e:=="+count);
}
}
我现在将尝试添加JOptionPane组件:-)