私のコードは、Junitテストに合格する必要がある以外は動作します。それは1つを除いて全てを通過させる。それは、文字が何も入力しないで、大文字、小文字、または2つの組み合わせを入力すると、渡し、それは入力時に動作しますHello World!ユーザーストリング入力。文字数をカウントする
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] textArray = new int[26];
System.out.print("Enter text: ");
readText(input, textArray);
}
public static void readText(Scanner input, int[]text){
char letter = 0;
if (input.hasNext() == false) {
System.out.println();
}
else {
while (input.hasNext()) {
String a = input.nextLine();
for (int i = 0; i < a.length(); i++) {
letter = a.charAt(i);
if (letter >= 'A' && letter <= 'Z') {
text[letter-65] = (text[letter-65]) + 1;
}
else if (letter >= 'a' && letter <= 'z') {
text[(letter - 32) - 65] = (text[(letter - 32) - 65]) + 1;
}
else if (letter == ' ') {
System.out.print("");
}
else {
System.out.print("");
}
}
}
}
String[] alphabet = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
for (int y = 0; y < text.length; y++) {
if (text[y] > 0) {
System.out.println(alphabet[y] + ": " + text[y]);
}
}
}
この入力をテストする:1 2 3%n! ? >%N :) !!%のn
期待出力が
Enter text:
//empty line here
ですが、代わりに私のコードの出力は、私が余分な行を取得するかどうかはわかりません
Enter text: //with no line after
です私の他のジュニットテストを台無しにしないで。私は一方的な方法を試してみましたが、うまくいきましたが、Hello Worldは正しく機能しませんでした。
と作業する場合の例:私はコンソールを実行打つとき
が
は、テキストを入力しますと言うだろう:
ユーザーはいくつかの単語を入力しますので、私はスキャナ入力を持っており、それは次のようになります。この
01のようにコンソールには回数をカウントします その後いくつかの単語の各文字を使用し、印刷:
コンソールにテキストを入力します。
入力テキスト:いくつかの単語
D:1
E:1
M:1
O:2
R:1
S:2
W:1
Iドン場合何かを入力してEnterキーを押すだけで、出力は
//空の行はこちら
しかし、私はテキスト入力
を入力してください:1 2 3
を? ! >
:)!
出力には最後に余分な行が追加されません。
System.out.print( "Enter text:")の代わりにSystem.out.println( "テキスト入力:")を使用してください。 –
'System.out.println("テキスト入力: "+" \ n ");' "テキスト入力"の後に新しい行が必要です。もしあなたもそれをタブしたいなら、あなたは 'System.out 'を使うことができます。 – Munib
@ return0ユーザー入力が「テキスト入力」と同じ行になければならないため、これを行うことはできません。 – Jay58t