我的代码工作除了我必须通过一些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