繁体   English   中英

Java程序长数组中的数字格式异常?

[英]Java program Number format exception in long array?

我正在编写用于接受一些非常大的数字(10 ^ 8阶)的代码,并且我的程序引发了数字格式异常。 这是代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

class sticker
{
    public static void main(String gs[])
    {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        long a[]=new long[40];
        int n=0,i,k=0;
        String x;

        try {
            x=in.readLine();
            n=Integer.parseInt(x); // n is the number of inputs
            for(i=0;i<n;i++)
            {
                x=in.readLine();
                a[i]=Long.parseLong(x);
            }

            for(i=0;i<n;i++)
            {
                if(a[i]<=300000000)
                    k++;
            }

        } catch (IOException e) {
            System.out.println("error");
        } catch(NumberFormatException nfe) {
            System.out.println("NumberFormatException: "+nfe.getMessage());
        }
        System.out.println("\n");
        System.out.println(k);
    }
}

谁能告诉我我在哪里做错了?

错误:

2
18 200000000
NumberFormatException: For input string: "18 200000000"


0

由于空格,“ 18 200000000”显然不是有效数字。 您的程序每行需要一个数字。 如果要允许每行多个数字,则需要找到其他解决方案来解析它们。 我至少可以想到两种解决方案:

  1. 使用split()在空间上拆分String
  2. 使用Scanner而不是BufferedReader
String[] lineParts = null;
String n = "18 200000000";
lineParts = n.split( " " );

long first = Long.parseLong(lineParts[0]);
long second = Long.parseLong(lineParts[1]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM