问题描述
.split() 函数是否存在? 当我输入:
public class Main {
public static void main(String[] args) {
String numbers = "1,2,3,4,5";
int[] numbers2 = (int[]) numbers.split(",");
System.out.println(numbers2);
}
}
它说:
Main.java:4: error: incompatible types: String[] cannot be converted to int[]
int[] numbers2 = (int[]) numbers.split(",");
^
1 error
解决方法
numbers.split(",")
返回一个 String
数组。您可以使用以下命令将 String
数组映射到 int
数组。
int[] numbers2 = Arrays.stream(numbers.split(",")).mapToInt(Integer::parseInt).toArray();
,
是的,引用类型 String 的方法 String[] split (String regex) 存在,这里是 Java SE 11 的引用 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#split(java.lang.String)。
但是您试图将引用类型String的变量强制转换到原始int类型的数组,这是无法直接实现的在 Java 中,无需解析。
-
将您的字符串变量拆分为字符串数组
String numbers = "1,2,3,4,5"; String[] numbersSplitted = numbers.split(",");
-
将字符串数组解析为整数数组
int [] numbersParsed = new int[numbersSplitted.length]; for(int i = 0; i < numbersSplitted.length; i++){ numbersParsed[i] = Integer.parseInt(numbersSplitted[i]); }
-
将解析后的数组或解析后的数组的每个元素打印到控制台
System.out.println(Arrays.toString(numbersParsed));
// or print each element of the parsed array for (int val : numbersParsed) { System.out.println(val); }
希望这会有所帮助!