猿问

从缓冲区读取器输入字符串时的 Java 数字异常

import java.util.*;

import java.io.*;

import java.lang.*;


class Ex

    public static void main (String[] args) throws IOException

     {

        BufferedReader br = new BufferedReader(newInputStreamReader(System.in));

        int a,b,n,c;

        n=Integer.parseInt(br.readLine());

        for(int i=1;i<=n;i++) 

        {   

            try

            { 

                a=Integer.parseInt(br.readLine());

                b=Integer.parseInt(br.readLine());

                try

                {

                    c=a/b;

                    System.out.println(c);

                }

                catch (ArithmeticException e)

                {

                    System.out.println(e);

                } 

            }    

            catch (InputMismatchException m) 

            {

                System.out.println(m);

            }       

        } 

    }

}

上面提到的是我试图运行的代码,下面是 input_file.txt


10

3

10

Hello

10

2

23.323

0.0

这是我得到的错误。


Exception in thread "main" java.lang.NumberFormatException: For input string: "4 "

        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

        at java.lang.Integer.parseInt(Integer.java:580)

        at java.lang.Integer.parseInt(Integer.java:615)

        at Ex.main(Ex.java:11)


收到一只叮咚
浏览 146回答 2
2回答

慕码人8056858

java.lang.NumberFormatException:&nbsp;For&nbsp;input&nbsp;string:&nbsp;"4&nbsp;"正如您从字符串上方的错误消息中看到的那样,您尝试解析的数字在末尾有一个空格,这将导致解析失败。要摆脱前导和尾随空格,您可以在字符串上使用trim()方法:a=Integer.parseInt(br.readLine().trim());

陪伴而非守候

我想你已经输入了带空格的数字 4。请检查您的输入。对于输入字符串:“4”为了避免它,您可以添加如下修剪功能Integer.parseInt(br.readLine().trim());
随时随地看视频慕课网APP

相关分类

Java
我要回答