数字格式输入字符串

时间:2015-08-19 14:02:10

标签: java numberformatexception

我输入了一个字符数组,现在我正在输入一个来自用户的号码。此时我得到一个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());

}

在最后一行,它给了我错误。

1 个答案:

答案 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());