Java中如何实现将String数组转换为int数组的方法?
- 后端开发
- 2025-09-17
- 7
在Java中,将字符串转换为整数数组是一个常见的需求,字符串可以是包含多个数字的字符串,也可以是逗号分隔的数字列表,以下是几种实现这一目标的方法:
使用循环和Integer.parseInt()
这种方法适合处理包含单个数字的字符串,或者每个数字之间由空格分隔的字符串。
public static int[] stringToIntArray(String str) { int[] arr = new int[str.length()]; for (int i = 0; i < str.length(); i++) { arr[i] = Integer.parseInt(String.valueOf(str.charAt(i))); } return arr; }
使用正则表达式
这种方法适合处理包含多个数字的字符串,每个数字之间由非数字字符分隔。

使用split()方法和Integer.parseInt()
这种方法适合处理逗号分隔的数字列表。
public static int[] stringToIntArray(String str) { String[] parts = str.split(","); int[] arr = new int[parts.length]; for (int i = 0; i < parts.length; i++) { arr[i] = Integer.parseInt(parts[i]); } return arr; }
使用Arrays.stream()和mapToInt()
这种方法适合处理逗号分隔的数字列表,并且可以更简洁地实现。
表格对比
以下是四种方法的对比表格:
| 方法 | 优点 | 缺点 |
|---|---|---|
| 循环和Integer.parseInt() | 简单易懂,适合单个数字或空格分隔的字符串 | 代码量较大,可读性较差 |
| 正则表达式 | 通用性强,适合处理任意非数字字符分隔的数字字符串 | 代码复杂,可读性较差 |
| split()方法和Integer.parseInt() | 简单易懂,适合逗号分隔的数字列表 | 代码量较大,可读性较差 |
| Arrays.stream()和mapToInt() | 代码简洁,可读性好 | 依赖于Java 8及以上版本 |
FAQs
问题1:如何处理字符串中包含的负数?
解答: 如果字符串中包含负数,可以使用类似的方法,但需要稍微修改一下代码,以下是修改后的代码:

public static int[] stringToIntArray(String str) { String[] parts = str.split(","); int[] arr = new int[parts.length]; for (int i = 0; i < parts.length; i++) { arr[i] = Integer.parseInt(parts[i].trim()); } return arr; }
在这个例子中,我们使用了trim()方法来去除字符串两端的空白字符,包括负号。
问题2:如何处理字符串中可能存在的非数字字符?
解答: 如果字符串中可能存在非数字字符,可以使用正则表达式方法,并在解析数字之前先去除这些非数字字符,以下是修改后的代码:
public static int[] stringToIntArray(String str) { Pattern pattern = Pattern.compile("?\d+"); Matcher matcher = pattern.matcher(str); List<Integer> list = new ArrayList<>(); while (matcher.find()) { list.add(Integer.parseInt(matcher.group())); } return list.stream().mapToInt(i > i).toArray(); }
在这个例子中,我们使用了正则表达式?\d+来匹配可能存在的负数,并且确保了所有匹配到的都是数字。
