私は、スクールでクラスのプログラムを作成しています。ユーザーから文字列を取得するために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);
}
私は取得しています出力は次のようになります(使用文字列: "スタックオーバーフロー")
私はそれを行うことができますどのように私は思い1つの出力しか得られないのですか?助けていただければ幸いです。もし私が逃したJava API上に何かがあったら、私に教えてください! (downvotesなし)ありがとう!
'System.out.println'ステートメントは' for-loop'の中にありますので、 'z-1'回繰り返されます。 – MadProgrammer
@MadProgrammer I 'for'ループの外に移動しようとしました:' Error :(69,62)java:variable spaceCountが初期化されていない可能性があります。 – Yoshi24517
@ Yoshi24517はあなたがそれを宣言したときに 'spaceCount'変数を' 0'に初期化します。 –