0

ここで最初の質問。すでにいくつかの調査を行いましたが、運はありません。コードにはほとんどすべてが正しく含まれていると思いますが、動作させることができません。ユーザーが入力した文字列またはフレーズから 1 文字を読み取り、それが見つかった回数を出力する必要があります。私はJavaの初心者で、どんな助けでも大歓迎です!! ありがとう。

import java.util.Scanner;

public class CountCharacters{
    public static void main(String[] args) {
            Scanner input = new Scanner(System.in);

            int timesFound;
            String stringSearched, characterSearched;

            System.out.printf("Enter a character for which to search: ");
            characterSearched = input.next();       
            System.out.printf("Enter the string to search: \n");
            stringSearched = input.nextLine();


            int numberOfCharacters = stringSearched.length();
            timesFound = 0;



            for (int x = 0; x < numberOfCharacters; x++)
            {
                char charSearched = characterSearched.charAt(0);

                if ( charSearched == stringSearched.charAt(x))
                    timesFound++;

                System.out.printf("\nThere are %d occurrences of \'%s\' in \"%s\"",
                        timesFound, characterSearched, stringSearched);
            }

   }    
}   
4

2 に答える 2

0

forループを見てください。それはあなたがやりたいことをやっていますか?コードが多すぎると思います。これが私があなたの仕事をする方法です

  • から 2 回読み取り、入力をそれぞれSystem.inに割り当てますcharacterSearchedstringSearched
  • あなたが行ったようにカウンターを初期化しますtimesFound

    int timesFound = 0;
    
  • から最初の文字を取得するcharacterSearched

    char charSearched = characterSearched.charAt(0);
    
  • 文字列をループしてstringSearchedカウントする

     for (int x = 0; x < stringSearched.length(); x++){
            if (charSearched == stringSearched.charAt(x))
                timesFound++;
        }
    
  • 結果を印刷する

    System.out.printf("\nThere are %d occurrences of \'%s\' in \"%s\"",
                    timesFound, characterSearched, stringSearched);
    
于 2013-10-25T03:39:09.713 に答える
0

コード内の次の行をコメントアウトしてください。

// stringSearched = input.nextLine();

そして、次の 2 行に置き換えます。

input.nextLine();
stringSearched = input.next();

nextLine()位置を次の行の先頭に設定します。したがって、別のinput.next().

これは、このフォーラムでの私の最初の回答です。したがって、私が犯したかもしれないエチケットの間違いを許してください。

于 2013-10-25T03:55:45.173 に答える