我遇到了编程方面的挑战,但对如何使其工作有些困惑。
挑战如下:

编写一个程序,要求用户输入一个字符串,然后要求用户输入一个字符。程序应计算并显示指定字符出现在字符串中的次数。

代码:

import java.util.Scanner;
public class F***Around
{
public static void main(String[] args)
{
    Scanner keyb = new Scanner(System.in);
    String word, character, test;
    int c = 0;

    System.out.println("Enter a word: ");
    word = keyb.nextLine();

    System.out.println("Enter a character: ");
    character = keyb.nextLine();

    for(int x = 1; x <= word.length(); x++)
    {
        test = word.substring(1, 2);
        if (test.equals(character))
        {
            c += c;
        }
    }

    System.out.println(c);
}
}


它总是在末尾返回0,我无法弄清楚出了什么问题。

最佳答案

需要2个更改:


使用迭代变量x实际遍历字符串。当前,您正在对要比较的子字符串进行硬编码,因此循环实际上是无用的。
c递增1,因为每1次发现字符时计数就会增加。


因此,您的代码应如下所示:

for(int x = 0; x < word.length(); x++)
{
    test = word.substring(x, x+1);
    if (test.equals(character))
    {
        c += 1;
    }
}

09-04 07:58
查看更多