在java中将字符串转换为int数组
我有一个字符串:
String arr = "[1,2]";
即就像一个字符串。"[1,2]"
如何在java中将其转换为int数组?arr
我有一个字符串:
String arr = "[1,2]";
即就像一个字符串。"[1,2]"
如何在java中将其转换为int数组?arr
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
};
}
使用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
删除括号,分隔数组元素,删除数字周围的任何空格,解析每个数字,然后将结果转储到数组中。我已经包含使它成为 的反义词,但这也将解析没有空格的字符串,如问题所示。如果只需要解析 来自 的字符串,则可以省略并使用(注意空格)。split
trim
parseInt
trim
Arrays.toString(int[])
Arrays.toString
trim
split(", ")