当前位置: 代码迷 >> J2SE >> readLine java.lang.NumberFormatException: For input string: ""
  详细解决方案

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

热度:530   发布时间:2016-04-24 13:05:52.0
readLine java.lang.NumberFormatException: For input string: ""
Java code
import java.io.*;public class java2_002 {    public static void main(String[] args) {        int i,n=10,max=0,min=0,temp=0;        try {            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));            for (i=1;i<=n;i++){                temp = Integer.parseInt(br.readLine());                if temp                if (i==1){                    max = min = temp;                }else{                    if (temp > max) max=temp;                    if (temp < min) min=temp;                }                //System.out.println("i="+String.valueOf(i));                        //如果我这一句不隐藏的时候就能正常输入,隐藏以后输入第二个数字的时候就提示如标题那串错误提示。            }        }        catch (Exception ex) {            System.out.println(ex.getStackTrace());        };        System.out.println("max="+max+"\nmin="+min);    }}
请大家帮忙。这是为什么?

------解决方案--------------------
输入的数字型,但输出的时候书字符型.
肯定要用到数据类型转化拉

------解决方案--------------------
temp = Integer.parseInt(br.readLine());
跟你下面这个没关系
探讨
System.out.println("i="+String.valueOf(i));
如果有加这一句就不会了。这是为什么。

------解决方案--------------------
Java code
import java.io.*;public class java2_002 {    public static void main(String[] args) {        int i,n=10,max=0,min=0,temp=0;        try {            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));            for (i=1;i<=n;i++){                temp = Integer.parseInt(br.readLine());                if temp//这个是什么?//...                if (i==1){                    max = min = temp;                }else{                    if (temp > max) max=temp;                    if (temp+)
------解决方案--------------------
那你是怎么输入弄出那个错误来的,把怎么操作的详细说下
------解决方案--------------------
你肯定是输入了空行,至于你小心翼翼的怎么操作得来的我也不知道
你先在temp = Integer.parseInt(br.readLine());
parseInt操作之前,对br.readLine()做判断吧
------解决方案--------------------
这个应该是由于缓存导致的。你最好一次把3个数都输入了,用空格分开.
由于你第一次输入的时候缓存里面还没有内容,第二次的时候缓存内就有多余的空行了
System.out.println("i="+String.valueOf(i));
上面这句强行刷新了缓存,个人感觉是这样的。建议你这么改下看看

temp = new Integer(br.readLine().trim()).intvalue();
  相关解决方案