任何人都可以解释为什么下面的代码表现得很奇怪:
public class UserInputTest {
public static void main(String[] args) throws IOException {
int n=3;
char[] arr = new char[n];
for (int i=0; i<n; i++) {
System.out.println(i+1 + " character :");
arr[i] = ((char)System.in.read());
}
System.out.println("You Entered : ");
for (int i=0; i<n; i++) {
System.out.println(arr[i]);
}
}
}
输出:
1个字符:
ü
2个字符:
3个字符:
你输入了:
ü
我希望它能阻止三次让用户输入值。 有什么意见吗?
谢谢,
莫希特
答案 0 :(得分:3)
从控制台读取字符有上面提到的问题。所以,尝试读取字符串:
public static void main(String args[]){
int n=3;
char[] arr = new char[n];
Scanner in = new Scanner(System.in);
for (int i=0; i<n; i++) {
System.out.println(i+1 + " character :");
String s1 = in.nextLine();
arr[i] = s1.charAt(0);
}
System.out.println("You Entered : ");
for (int i=0; i<n; i++) {
System.out.println(arr[i]);
}
}
答案 1 :(得分:1)
您输入了一个字符,然后按Enter键。第二次读取返回Enter。
答案 2 :(得分:1)
输入单个字符的正确方法是使用GUI,例如Swing GUI。您无法使用标准Java控制台输入单个字符。
您可以使用非标准控制台,例如JCurses,但不能使用标准Java控制台。