可以利用正则表达式,输入之后在判断:
package foundations.iolearn;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ReadingFromStdin {
public static void main(String[] args)
{
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = "";
while((s = br.readLine()) != null) {
if (!s.matches("^\\s*(\\+|-)?([0-9]|[1-9][0-9]*)\\s*$")) {
throw new Exception("含有非法字符");
}
int i = Integer.parseInt(s.trim());
System.out.println("read: " + i);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
这个是没法控制的。
不过可以写一个循环判断输入如果不是4位 就让他重新输入。