将字符串从字符串数组转换为整数

时间:2015-04-26 01:54:46

标签: java arrays string token parseint

我试图使用parseInt()将一些字符串从数组转换为整数。我正在阅读许多单独的文件中的行,如下所示:

car,house,548544587,645871266

我有类似下面的代码:

String [] tokens = line.split(",");
try {
        line = line.trim();
        int a = Integer.parseInt(tokens[2]);
        int b = Integer.parseInt(tokens[3]);
        int c = (b - a);
        System.out.println(c);
        } catch (NumberFormatException e) {
                    System.out.println(e);
            }

但对于我读到的每一行,这都会失败并出现这样的错误:

java.lang.NumberFormatException: For input string: "548544587"
java.lang.NumberFormatException: For input string: "645871266"

知道我可能缺少什么吗?

3 个答案:

答案 0 :(得分:5)

您需要在拆分前删除引号。由于引号,它无法将"number"转换为实际数字。

String line = "\"car\",\"house\",\"548544587\",\"645871266\"";
String[] tokens = line.replace("\"", "").split(",");
try {

    int a = Integer.parseInt(tokens[2]);
    int b = Integer.parseInt(tokens[3]);
    int c = (b - a);
    System.out.println(c);
} catch (NumberFormatException e) {
    System.out.println(e);
}

<强>输出:

97326679

答案 1 :(得分:0)

String使用line不会对我产生错误,因此必须与您从文件中读取的内容相关联。另外值得注意的是,你修剪了行,但不是tokens中的每个元素。尝试修剪每个元素,例如int a = Integer.parseInt(tokens[2].trim());。此外,您可能会收到回车字符,例如\n和/或\r,因此请尝试替换拆分前的字符,例如String[] tokens = line.replaceAll("\\n", "").replaceAll("\\r", "").split(",");。希望这会有所帮助。

答案 2 :(得分:0)

public static void main(String[] args) {
        // TODO Auto-generated method stub
        String line="car,house,548544587,645871266";
        String [] tokens = line.split(",");
        try {
                line = line.trim();             
                int a = Integer.parseInt(tokens[2].trim());
                int b = Integer.parseInt(tokens[3].trim());
                System.out.println(a+ " "+b);
                int c = (b - a);
                System.out.println(c);
                } catch (NumberFormatException e) {
                            System.out.println(e);
                    }

    }
    Output;
    548544587 645871266
    97326679