为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

收到一只叮咚 2021-10-28 14:54:27
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.txt4 10310Hello10223.3230.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)
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

java.lang.NumberFormatException: For input string: "4 "

正如您从字符串上方的错误消息中看到的那样,您尝试解析的数字在末尾有一个空格,这将导致解析失败。

要摆脱前导和尾随空格,您可以在字符串上使用trim()方法:

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


查看完整回答
反对 回复 2021-10-28
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

我想你已经输入了带空格的数字 4。请检查您的输入。

对于输入字符串:“4”

为了避免它,您可以添加如下修剪功能

Integer.parseInt(br.readLine().trim());


查看完整回答
反对 回复 2021-10-28
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信