如何计算Java中字符串中指定char的实例?

时间:2013-10-08 16:44:20

标签: java java.util.scanner

我已经查看了我在这里可以找到的所有相关内容,但由于某些原因,没有任何帮助。每当我运行这个时,我总是得到0的结果。不,我不能使用其他库(我看到一些很棒的解决方案,将它降低到一行,但我不能这样做)

public void process()
{
    Scanner input = new Scanner(System.in);
    System.out.println("Enter your String:");
    String in_string = input.nextLine();

    Scanner input2 = new Scanner(System.in);
    System.out.println("Press 1 to count the occurrence of a particular letter.");
    System.out.println("Press 2 to count the total words in your input sentance.");
    System.out.println("Press 3 to change your input sentance.");
    System.out.println("Press 4 to exit.");

    int option = input2.nextInt();

    if (option==1)
    {
        System.out.println("Choose your letter: ");
        String in_occurence = input.nextLine();


        for(int i = 0 ; i < in_string.length(); i++)
        {
            if(in_occurence.equals(in_string.charAt(i)))
            {
                charCount++;
            }
        }
        System.out.println(charCount);
    }

2 个答案:

答案 0 :(得分:2)

您正在使用StringcharString#equals()进行比较。这总是会给你false

例如:

System.out.println("a".equals('a'));  // false

您应该通过在比较前获取索引0处的字符来将String转换为char

if(in_occurence.charAt(0) == in_string.charAt(i))

或者,只需将in_occurrence声明为char类型:

char in_occurence = input.nextLine().charAt(0);

答案 1 :(得分:1)

您正在将Stringchar进行比较,即使字符串包含该字符,它也永远不会相等。

你想要的是

if (in_occurance.charAt(0) == in_string.charAt(i)) // compare char