我的代碼工作除了我必須通過一些Junit測試。它通過所有,但一個。當字符沒有進入任何內容時,它會通過,輸入大寫,小寫或兩者的組合,並且當輸入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]);
}
}
}
Junit測試這個輸入:1 2 3%n! ? >%N :) !!%N
預期的輸出是
Enter text:
//empty line here
但不是從我的代碼輸出
Enter text: //with no line after
我不知道如何獲得額外的行在不破壞我的其他junit測試之後。我嘗試了一種方法,它的工作,但後來我的Hello World無法正常工作。
和實例時,其工作:
當我打運行控制檯會說
輸入文本:
我有一個掃描儀輸入,這樣用戶會輸入一些的話,它會是這樣的在控制檯
輸入文本:有些話
然後將計算的次數使用每個字母和打印,爲了安慰這樣
輸入文本:一些單詞
d:1
E:1
M:1
○:2
R:1個
S:2
寬:1
如果我不當被問及時什麼都不輸入,只需按回車鍵輸出是
輸入文本:
//空行在這裏
但是,當我進入
輸入文本:1 2 3
? ! >
:)!
輸出不會在最後添加額外的行。
使用System.out.println(「輸入文本:」)而不是System.out.print(「輸入文本:」)。 –
'System.out.println(「輸入文本:」+「\ n」);'你需要在「輸入文本」之後換行。如果你也想選中它,你可以使用'System.out。println(「Enter text:」+「\ n \ t」);' – Munib
@ return0不能這樣做,因爲用戶輸入必須與「輸入文本:」 – Jay58t