1

私が達成しようとしていること:

ユーザーに文字列の入力を求めるプログラムを作成します。次に、その文字列の最初の文字が出現する回数を出力します。ユーザーがすべて大文字の文字列を入力するとします。たとえば、ユーザーが「PETER PIPER PICKED A PECK OF PICKLED PEPPERS」と入力した場合、プログラムは「P は 9 回発生します」と出力する必要があります。

私がこれまでに持っているもの:

import javax.swing.JOptionPane;

public class counterCharacter {

  public static void main(String[] args)
  {
    String userInput = JOptionPane.showInputDialog("Input a string");
    int count = userInput.indexOf(0);
    for(int i =0; i < userInput.length(); i++)

        if(userInput.charAt(i) == 'a')  
          count++;
        System.out.println(count);
    }
}

このコードの問題は、文字 'a' のみが表示され、それがインデックス ポイント 0 にある場合にのみ表示されることです。私のタスクは、ユーザーが任意の文字列を入力できるようにし、ユーザー入力のインデックス ポイント 0 から文字を取得し、その文字が入力内で何回繰り返されるかを正確に数えます。PETER PIPER の例では、システムは「6」を出力する必要があります。これは、インデックス 0 の位置に文字が出現する回数です。しかし、ユーザーが abcdcbabcdcda と入力すると、「3」が出力されるはずです。

私は新しいプログラマーであり、クラスを 1 日欠席し、今では遅れをとって追いつくために努力しているため、これに関する助けをいただければ幸いです。可能であれば、使用した特定のコードを使用した理由と、その特定のものの使用方法を学ぶために使用できる参考資料を説明してください. ありがとう!

4

5 に答える 5

0

public class CountCharacter {

public static void main(String[] args)
{
int count = 1;
String userInput = JOptionPane.showInputDialog("Input a string");
char ch = userInput.charAt(0);
for(int i =1; i < userInput.length(); i++)
{
    if(userInput.charAt(i) == ch)

    count++;
}


System.out.println(count);

}

}

This will give you the output you intended to produce ....

于 2013-09-29T18:19:55.890 に答える
0

最初に、最初の文字を保存します。

char firstChar = userInput.charAt(0);

変数を作成して、見つかった一致の数を追跡します。

int count = 0;

文字列をループし、該当する場合はカウントを増やします。

for(int i=0; i<userInput.length(); i++){
  if(userInput.charAt(i) == firstChar){
    count++
  }
 }

編集:基本的に欠けていたのは、最初の文字を別の変数に格納することだけです。

于 2013-09-29T18:15:03.497 に答える