首页 > 解决方案 > 将字符串格式的数字转换为整数格式(Java)

问题描述

我有一个小问题:

import java.io.*;

public class Ninteri {

    public static void main(String[] args) throws IOException {

        FileReader f = new FileReader("/Users/MyUser/Desktop/reader.txt");

        BufferedReader b = new BufferedReader(f);

        String s;
        int x;

        while (true) {
            s = b.readLine();
            if (s == null) {
                break;
            }

            x = Integer.parseInt(s);
            System.out.println(x);
        }
    }

}

例外:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1 2 3 4 5 6 7 8 "
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at stream.Ninteri.main(Ninteri.java:22)

标签: javaintegerbufferfilereaderparseint

解决方案


1 2 3 4 5 6 7 8 不是单个数字,因此不能用整数表示。

在 split 产生的字符串数组上使用 for 块来单独转换它们中的每一个。

for(String a: s.split("\\s")) {
    int x = Integer.parseInt(a);
    System.out.println(x);
}

推荐阅读