-1

入力されたユーザーの文字列で、指定された文字数の制限(たとえば、10文字)をチェックするプログラムを作成したいと思います。入力された文字列が10文字を超える場合、ユーザーが有効な文字列を入力するまで、システムはユーザーに有効な文字列(10文字の単語)の入力を何度も要求する必要があります。

すでにいくつかのコードがありますが、まだ機能していません。ユーザーに再プロンプトを表示するためにプロセスを開始(1行目)に移動する方法がわからないためです。または他の簡単な方法がありますか?

System.out.print("Input: ");
String inputChars = Input.readString();

while (inputChars.length() > 10){
    System.out.print("Input: ");
    String inputChars = Input.readString();  // here is mistake now
}
System.out.print("Output: ");
System.out.print("The enter has 10 chars");

入力した単語を確認したいのですが、が10文字を超えている場合は、それをスキップして、ユーザーに10文字以下の単語の入力を再度求めます。私はまだJavaが苦手なので、この質問がばかげている場合は、それを解決する方法を説明してください。前もって感謝します

4

3 に答える 3

3

あなたのループを見てください:

while (inputChars.length() > 10){
    System.out.print("Input: ");
    String inputChars = Input.readString();
}

ループ本体の 2 行目では、変数を再宣言しています。inputCharsすでに範囲内にあるため、それを行うことはできません。前の値を置き換えるだけです:

inputChars = Input.readString();

ただし、重複を避けるためにコードを再構築することも検討する必要があります。

String inputChars;
do {
    System.out.print("Input: ");
    inputChars = input.readString();
} while (inputChars.length() > 10);

通常の Java 命名規則に従うために、Input変数の名前も に変更したことに注意してください。input私は実際にはおそらく両方inputを変更inputCharsし、より説明的になるでしょう-特に、現時点では入力データが何を意味するのかを示すものはありません。

于 2012-11-01T18:14:06.653 に答える
1

最初のを削除するだけStringです:

  while (inputChars.length() > 10){
     System.out.print("Input: ");
     inputChars = Input.readString();  // here is mistake now
  }

最初に持っStringていることで、同じ名前の変数を再度再定義しようとしています。

于 2012-11-01T18:13:57.133 に答える
0

への変更:

String inputChars = ""
do {
    System.out.print("Input: ");
    inputChars = Input.readString();
} while (inputChars.length() > 10)
System.out.print("Output: ");
System.out.print("The enter has 10 chars");

以前はinputChars、ループの前に既に宣言されていたので、変数を再宣言する必要はありませんでした。

do-while ループは、意図をより明確にし、コードをよりクリーンにするため、ここではより適切な構造です。

于 2012-11-01T18:15:47.023 に答える