我输入了一个字符数组,现在我正在输入一个来自用户的号码。此时我得到一个NumberFormatException 我的代码是:
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
char c[] = new char[n];
for (int i = 0; i < n; i++) {
c[i] = (char) br.read();
}
int k = Integer.parseInt(br.readLine());
}
在最后一行,它给了我错误。
答案 0 :(得分:0)
如果您尝试将无效的整数字符串或空字符串转换为NumberFormatException
,则会得到Integer
。
String x = "abcd";
int y = Integer.parseInt(x);//this raises the exception as abcd is not a valid number
非技术解决方案:
尝试成为聪明人并仅输入数字。
技术解决方案:
try
{
String x = "abcd";
int y = Integer.parseInt(x);
}
catch(NumberFormatExcpetion ne)
{
System.out.println("Numbers Only!");
}
请勿使用br.read()
来阅读字符。如果你在单独的行中输入它们,它就不会考虑它们。
改为使用System.in.read()
。
int n = Integer.parseInt(br.readLine());
char c[] = new char[n];
for (int i = 0; i < n; i++) {
char ch;
do {
ch = (char) System.in.read();
} while (ch != '\n');
c[i] = ch;
}
int k = Integer.parseInt(br.readLine());