Java:如何使用Loop计算String中的字符?

时间:2014-10-08 23:19:18

标签: java string loops

我想知道如何计算用户输入的字母出现在用户输入的字符串中的次数。我必须使用循环和if / else语句。我认为我正处于正确的轨道上,但是在编译时(使用BlueJ)我会陷入困境,错误消息"找不到符号 - 变量位置"。非常感谢任何帮助,谢谢。

String input;
String sentence;
String letter;
int times=0;
int position;

Scanner kb = new Scanner(System.in);

System.out.print("Please enter a string: ");
input = kb.nextLine();

sentence = input.toLowerCase();

System.out.print("Thank you.\nPlease enter the character you wish to be counted: ");
letter = kb.next();

for (position=0; position<=sentence.length(); position++) {
    if (sentence.charAt(position) == letter) {
        times++;
    }
}  

System.out.print("There are "+times+" ocurrances of the letter "+letter
                     +" in the string "+sentence);`

1 个答案:

答案 0 :(得分:1)

首先,你的if语句中有一个拼写错误:

sentence.charAt(posotion)

应该是

sentence.charAt(position)

然后,您要分配而不是测试相等性:

if (sentence.charAt(position) = letter) {

应该是

if (sentence.charAt(position) == letter) {

接下来,您将使用if语句将char与字符串进行比较。有几种解决方法,一种方法是(假设letter至少有一个字符):

if (sentence.charAt(position) == letter.charAt(0)) {

最后,你可能不会检查字符串末尾的内容,所以:

for (position=0; position<=sentence.length(); position++) {

应该是

for (position=0; position<sentence.length(); position++) {