在Java中将String转换为int数组
在Java中,将String转换为int数组有几种常见方法,以下是几种实现方式:

方法1:使用String.split()和Integer.parseInt()
public class StringToIntArray {
public static void main(String[] args) {
String str = "1,2,3,4,5";
String[] strArray = str.split(","); // 按逗号分割字符串
int[] intArray = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
intArray[i] = Integer.parseInt(strArray[i].trim()); // 去除空格并转换
}
// 打印结果
for (int num : intArray) {
System.out.print(num + " ");
}
}
}
方法2:使用Java 8 Stream API
import java.util.Arrays;
import java.util.stream.Collectors;
public class StringToIntArray {
public static void main(String[] args) {
String str = "1 2 3 4 5"; // 空格分隔
int[] intArray = Arrays.stream(str.split(" "))
.mapToInt(Integer::parseInt)
.toArray();
// 打印结果
Arrays.stream(intArray).forEach(num -> System.out.print(num + " "));
}
}
方法3:处理包含方括号的字符串(如JSON格式)
import java.util.Arrays;
import java.util.stream.Collectors;
public class StringToIntArray {
public static void main(String[] args) {
String str = "[1, 2, 3, 4, 5]"; // 类似JSON的格式
// 去掉方括号,然后分割
String cleanStr = str.replaceAll("\\[|\\]", "");
int[] intArray = Arrays.stream(cleanStr.split(","))
.mapToInt(Integer::parseInt)
.toArray();
// 打印结果
Arrays.stream(intArray).forEach(num -> System.out.print(num + " "));
}
}
方法4:处理自定义分隔符
import java.util.Arrays;
public class StringToIntArray {
public static void main(String[] args) {
String str = "1;2;3;4;5"; // 分号分隔
String[] parts = str.split(";");
int[] intArray = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
intArray[i] = Integer.parseInt(parts[i].trim());
}
// 打印结果
System.out.println(Arrays.toString(intArray));
}
}
注意事项
- 分隔符选择:根据你的字符串格式选择合适的分隔符(逗号、空格、分号等)
- 异常处理:如果字符串可能包含非数字内容,应该添加异常处理:
try { int num = Integer.parseInt(str); } catch (NumberFormatException e) { System.err.println("无法解析: " + str); } - 空格处理:使用
trim()去除数字前后的空格 - 性能考虑:对于大字符串,Stream API可能比传统for循环慢,但代码更简洁
选择哪种方法取决于你的具体需求和输入字符串的格式。

