Java 为什么我会有数字形式异常?

Java 为什么我会有数字形式异常?,java,bufferedreader,numberformatexception,parseint,stringtokenizer,Java,Bufferedreader,Numberformatexception,Parseint,Stringtokenizer,我在CodeChef平台上做了一个问题,代码在我的IDE中执行得很好,而不是在CodeChef平台上 当我用扫描器代替缓冲读卡器时,情况也是如此,我得到的是NoTouchElementException Exception in thread "main" java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Integer.java:542) at java.lang.Integer.parseI

我在CodeChef平台上做了一个问题,代码在我的IDE中执行得很好,而不是在CodeChef平台上

当我用扫描器代替缓冲读卡器时,情况也是如此,我得到的是NoTouchElementException

Exception in thread "main" java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Integer.java:542)
    at java.lang.Integer.parseInt(Integer.java:615)
    at Codechef.main(Main.java:13)
以下是问题的链接:

/*包编解码器;//不要放置包名*/
导入java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
类Codechef
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
int T=Integer.parseInt(br.readLine());
而(T>0)
{
StringTokenizer st=新的StringTokenizer(br.readLine());
int N=Integer.parseInt(st.nextToken());
int C=Integer.parseInt(st.nextToken());
int L[]=新的int[N];
int B[]=新的int[N];
int c[]=新的int[N];
int maxL=0,maxB=0;
对于(int i=0;i如果我能数到第13行(在这里发布的代码中总是不稳定),您的异常来自这一行:

int T = Integer.parseInt(br.readLine());
br.readLine()
在没有更多输入时返回
null
。由于这是您第一次调用
readLine()
,这意味着您的输入是空的。异常消息中的
null
表示将
null
传递给
parseInt
(或字符串
“null”)
,但这不太可能)

此错误解释也与您从
扫描仪
报告的
无接触异常
一致


提示:我知道您的变量来自一个问题语句,它使用了大写的
T
N
C
L
B
。在Java中,让Java命名约定获胜:变量使用小写。因此
T
capitalAlt
。变量名
T
尤其重要使用因为
T
在泛型中经常用作类型参数。

您从控制台提供的输入是什么?CodeChef使用问题中的一组测试输入进行计算。感谢您的提示。下次我将使用命名约定win。因此,我猜提供的测试输入有问题,或者不应该有问题这是一个错误。
int T = Integer.parseInt(br.readLine());