0

ここで見つけることができる関連するすべてのものを調べましたが、何らかの理由で何も役に立ちません. これを実行するたびに、結果は常に0になります。いいえ、これに他のライブラリを使用することはできません(1行にまとめる素晴らしいソリューションを見ましたが、それはできません)

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);
    }
4

2 に答える 2

2

を使用して と比較しStringています。それは常にあなたに与えるでしょう。charString#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);
于 2013-10-08T16:46:41.083 に答える
1

文字列にその文字が含まれていても、a と決して等しくないStringaを比較しています。char

あなたが欲しいのは

if (in_occurance.charAt(0) == in_string.charAt(i)) // compare char
于 2013-10-08T16:46:14.037 に答える