代码片断如下: 一输入完a 按回车 就弹出异常
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
char flag = (char)System.in.read();
//System.in.read();
String str;
if(flag=='a')
{
System.out.println("请输入要产生的迷宫的大小 size=");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
str = br.readLine();
size = Integer.parseInt(str); //!!!这行出错 inputMaze(size);
}
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
char flag = (char)System.in.read();
//System.in.read();
String str;
if(flag=='a')
{
System.out.println("请输入要产生的迷宫的大小 size=");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
str = br.readLine();
size = Integer.parseInt(str); //!!!这行出错 inputMaze(size);
}
解决方案 »
- java程序调用javac编译获取编译结果信息
- 求解几个关于for循环的题目。。
- 请教回收站的表示
- !新手请教ResultSet问题~~
- 请教高人:如何在UDP数据报中传输及显示中文信息?
- 学 JAVA 要与 UNIX/Linux 结合起来学习吗?
- 请教高手,这是怎么回事?谢谢,急,!!!!!
- 想问各位大虾毕业两年后在做什么?该怎么转型?
- 有谁知道tomcat中Context.INITIAL_CONTEXT_FACTORY应该设置为什么?
- 请问JavaScript可以和Applet进行数据交互或函数调用吗?如果可以怎么进行呢?谢谢
- js string 转 date
- 请大家提供一下java海量数据存储的方案
那个a的输入应该是没问题的。
一进入if语句就异常了
代码到底哪里有问题啊 求各位大侠帮忙看看啊...
输入带a的字符,是肯定会进入if的,而进入后 new BufferedReader(new InputStreamReader(System.in))又读不到内容,所以就报空指针了.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test { /**
* @param args
*/
public static void main(String[] args) {
try {
while (true) {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
String flag = br.readLine();
String str;
if ("a".equals(flag)) {
do {
System.out.println("请输入要产生的迷宫的大小 size=");
br = new BufferedReader(
new InputStreamReader(System.in));
str = br.readLine();
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(str);
if (m.matches()) {
int size = Integer.parseInt(str);
System.out.println(size);
break;
} else {
System.out.println("请输入数字.");
}
} while (true);
break;
}
}
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}}
System.out.println("请输入a继续,q退出!");
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
String flag = br.readLine();
String str;
if ("a".equals(flag)) {
do {
System.out.println("请输入要产生的迷宫的大小 size=");
br = new BufferedReader(
new InputStreamReader(System.in));
str = br.readLine();
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(str);
if (m.matches()) {
int size = Integer.parseInt(str);
System.out.println(size);
break;
} else {
System.out.println("请输入数字.");
}
} while (true);
break;
}else if("q".equals(flag))
{
break;
}
}
这位大侠,你说了这么多,感觉不是很懂呐
我只输入了一个a啊,没有多余的输入了,
a之后的回车应该不会被读入的吧,呃 不清楚- -||
a的输入没问题的呐,因为能够正确进入我的if语句
关键下面那个咋就空字符串了呢,它咋根本没等我输入呢...
呃,感觉就是这个问题了,readLine难道不是应该是要等着用户输入一个字符串的么??
char flag = (char)System.in.read();
System.in.read();
System.in.read();
String str;自己解决了,这样就行了
晕倒,可是还是不懂啊
为什么要两个System.in.read();
本来我一直只加了一句System.in.read();用来把回车读掉的
啊 看不懂了,求大侠们解释啊~~~
楼主试试输入abc回车,看看。