Java分裂字符串与数字

时间:2015-10-20 23:35:43

标签: java string split

如何用数字拆分字符串? 就像我有" 20 40"进入后,我该如何拆分 所以我得到20,40?

    int t = Integer.parseInt(x);
    int str = t;
    String[] splited = str.split("\\s+");

我的代码。

2 个答案:

答案 0 :(得分:2)

如果您尝试将包含以空格分隔的整数标记的字符串解析为int数组,则以下内容将起作用:

String input = "20 40";
String[] tokens = input.split(" ");
int[] numbers = new int[tokens.length];

for (int i = 0; i < tokens.length; i++) {
    numbers[i] = Integer.parseInt(tokens[i].trim());
}

您也可以通过惊人的Google Guava library中的IterablesSplitter实用程序在单行中执行此操作:

Integer[] numbers = Iterables.toArray(Iterables.transform(
        Splitter.on(' ').trimResults().split(input),
            new Function<String, Integer>() {

                @Override
                public Integer apply(String token) {
                    return Integer.parseInt(token);
                }
            }), Integer.class);

答案 1 :(得分:1)

您需要将其转换为字符串值然后拆分,可能是这样的:

String[] splited = String.valueOf(str).split("\\s+");

您似乎正在将数字读取为String并尝试在拆分之前将其转换为整数:

int t = Integer.parseInt(x);

所以你实际上可以拆分你的变量x并从中获取个别的int值:

String[] splited = x.split("\\s+");
for(String num:splited) {
     int intVal = Integer.valueOf(num);
}