Java 数字格式异常
Java Number Format Exception
我在 CodeChef
平台上做题时遇到 NumberFormatException
。
首先我使用 Scanner
来处理输入,然后是 BufferedReader
。但是 none 成功了!
这是我的代码:
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
class Practise {
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) {
String s = br.readLine();
ArrayList<String> al = new ArrayList<>();
int i = 0;
while(i < s.length()) {
String temp = "";
while(s.charAt(i) != ' '){
temp += s.charAt(i);
i++;
if(i >= s.length()) {
break;
}
}
al.add(temp);
i++;
}
if(al.contains("not")) {
System.out.println("Real Fancy");
} else {
System.out.println("regularly Fancy");
}
t--;
}
}
}
可能是什么问题?
输入
--> 输入的第一行包含一个整数 T 表示数字
的测试用例。 T 测试用例的描述如下。
--> 每个测试用例的第一行也是唯一一行包含一个字符串 S 表示
引用。
我收到的异常消息-
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 Practise.main(Main.java:11)
文档:
* Thrown to indicate that the application has attempted to convert
* a string to one of the numeric types, but that the string does not
* have the appropriate format.
异常会在int t = Integer.parseInt(br.readLine());
行抛出。那里抛出异常的原因是您在那里阅读的输入不是数字。如果它是一个数字 + 一个字符串或其他东西,它将抛出 NumberFormatException
.
示例输入1235a
这将引发异常并显示以下消息:
java.lang.NumberFormatException: For input string: "1235a"
所以你应该调试那里的输入。
我在 CodeChef
平台上做题时遇到 NumberFormatException
。
首先我使用 Scanner
来处理输入,然后是 BufferedReader
。但是 none 成功了!
这是我的代码:
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
class Practise {
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) {
String s = br.readLine();
ArrayList<String> al = new ArrayList<>();
int i = 0;
while(i < s.length()) {
String temp = "";
while(s.charAt(i) != ' '){
temp += s.charAt(i);
i++;
if(i >= s.length()) {
break;
}
}
al.add(temp);
i++;
}
if(al.contains("not")) {
System.out.println("Real Fancy");
} else {
System.out.println("regularly Fancy");
}
t--;
}
}
}
可能是什么问题?
输入 --> 输入的第一行包含一个整数 T 表示数字 的测试用例。 T 测试用例的描述如下。 --> 每个测试用例的第一行也是唯一一行包含一个字符串 S 表示 引用。
我收到的异常消息-
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 Practise.main(Main.java:11)
文档:
* Thrown to indicate that the application has attempted to convert
* a string to one of the numeric types, but that the string does not
* have the appropriate format.
异常会在int t = Integer.parseInt(br.readLine());
行抛出。那里抛出异常的原因是您在那里阅读的输入不是数字。如果它是一个数字 + 一个字符串或其他东西,它将抛出 NumberFormatException
.
示例输入1235a
这将引发异常并显示以下消息:
java.lang.NumberFormatException: For input string: "1235a"
所以你应该调试那里的输入。