在java中将字符串转换为int数组

2022-08-31 14:51:22

我有一个字符串:

String arr = "[1,2]";

即就像一个字符串。"[1,2]"

如何在java中将其转换为int数组?arr


答案 1
String arr = "[1,2]";
String[] items = arr.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s", "").split(",");

int[] results = new int[items.length];

for (int i = 0; i < items.length; i++) {
    try {
        results[i] = Integer.parseInt(items[i]);
    } catch (NumberFormatException nfe) {
        //NOTE: write something here if you need to recover from formatting errors
    };
}

答案 2

使用Java 8的流库,我们可以使它成为一行(尽管是一长行):

String str = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]";
int[] arr = Arrays.stream(str.substring(1, str.length()-1).split(","))
    .map(String::trim).mapToInt(Integer::parseInt).toArray();
System.out.println(Arrays.toString(arr));

substring删除括号,分隔数组元素,删除数字周围的任何空格,解析每个数字,然后将结果转储到数组中。我已经包含使它成为 的反义词,但这也将解析没有空格的字符串,如问题所示。如果只需要解析 来自 的字符串,则可以省略并使用(注意空格)。splittrimparseInttrimArrays.toString(int[])Arrays.toStringtrimsplit(", ")