2017-01-27 13 views
-1

私は、スクールでクラスのプログラムを作成しています。ユーザーから文字列を取得するためにJavaプログラムを作成してから、大文字、小文字、および空白。コードは正常に動作し、問題は同じ出力を2回繰り返すことです。出力を表示するときに出力が繰り返される[Java]

コード:

String isUp = ""; 
    String isLo = ""; 
    int spaceCount; 
    System.out.print("Please give a string: "); 
    String x = input.nextLine(); 
    int z = x.length(); 
    for(int y = 0; y < z; y++){ 
     if (Character.isUpperCase(x.charAt(y))){ 
      char u = x.charAt(y); 
      isUp = isUp + u + " "; 
     } 
     if (Character.isLowerCase(x.charAt(y))){ 
      char v = x.charAt(y); 
      isLo = isLo + v + " "; 
     } 
     spaceCount = 0; 
     for (char c : x.toCharArray()) { 
      if (c == ' ') { 
       spaceCount++; 
      } 
     } 
     System.out.println("The uppercase characters are " + isUp); 
     System.out.println("The lowercase characters are " + isLo); 
     System.out.println("The number of whitespaces is " + spaceCount); 
    } 

私は取得しています出力は次のようになります(使用文字列: "スタックオーバーフロー")

Output

私はそれを行うことができますどのように私は思い1つの出力しか得られないのですか?助けていただければ幸いです。もし私が逃したJava API上に何かがあったら、私に教えてください! (downvotesなし)ありがとう!

+5

'System.out.println'ステートメントは' for-loop'の中にありますので、 'z-1'回繰り返されます。 – MadProgrammer

+0

@MadProgrammer I 'for'ループの外に移動しようとしました:' Error :(69,62)java:variable spaceCountが初期化されていない可能性があります。 – Yoshi24517

+0

@ Yoshi24517はあなたがそれを宣言したときに 'spaceCount'変数を' 0'に初期化します。 –

答えて

3

printlnステートメントはあなたの中にループforです。ループをforの外側に移動します。

また、宣言時に変数spaceCountを初期化する必要があります。

+0

'int spaceCount'の変更はどうですか? – Yoshi24517

+0

はい、宣言時に 'spaceCount'変数を初期化する必要があります。 –

+0

私はあなたの答えにそれを入れていることを意味していました... – Yoshi24517

0

ループをforループの外側に移動します。また、ループからspaceCount = 0;を削除してください。代わりにint spaceCount;int spaceCount = 0;に置き換えてください。

1

B.Naeemの答えに加えて、ループが...

for(int y = 0; y < z; y++){ 
    if (Character.isUpperCase(x.charAt(y))){ 
     char u = x.charAt(y); 
     isUp = isUp + u + " "; 
    } else if (Character.isLowerCase(x.charAt(y))){ 
     char v = x.charAt(y); 
     isLo = isLo + v + " "; 
    } else if (Character.isWhitespace(x.charAt(y))) { 
     spaceCount++; 
    } 
} 
基本的に

またはこれがないようなものに簡体できることは、文字が同棲上部または下部ケース入りまたはスペースであるかどうかを確認していますあたかもそれらのいずれかであるかのように、他のものではありません

関連する問題