日期:2014-05-20  浏览次数:20850 次

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();