为什么我在代码的第 7 行收到错误 [线程 "main" java.lang.NumberFormatException 中的异常:对于输入字符串:“3”]?

why am i getting an error [Exception in thread "main" java.lang.NumberFormatException: For input string: "3"] in line 7 of my code?

所以我在解决竞争性编程中的一个问题时,我必须将这些数字作为输入...

3 
40 40 100
45 45 90
180 1 1

这是我的代码:

package CP;
import java.io.*;
import java.util.*;
class Test {
    public static void main(String[] args)throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int t=Integer.parseInt(br.readLine());
        while(t-->0){
            StringTokenizer s=new StringTokenizer(br.readLine());
            int a=Integer.parseInt(s.nextToken());
            int b=Integer.parseInt(s.nextToken());
            int c=Integer.parseInt(s.nextToken());
            if(a+b+c==180) System.out.println("YES");
            else System.out.println("NO");
        }
        br.close();
    }
}

所以当我逐行输入时,这段代码工作正常。但是当我一次将所有行作为输入时,它会在第 7 行显示 [线程“主”异常 java.lang.NumberFormatException:对于输入字符串:“3”]。为什么会这样?

输入的3后面有个space。这会导致 Integer.parseInt(String) 失败。修剪输入行应该足以解决您的问题。

int t = Integer.parseInt(br.readLine().trim());