在Java中,你可以通过使用String.split() 方法和for 循环的组合,将一个String 类型的变量转换成一个int[] (或int 数组)。
假设你想有一个String 变量,如下图:
String myStr = "12345";
为了转换类型,你需要使用String.split() 方法先创建一个字符串数组:
String[] strArr = myStr.split("");
一旦你有一个String ,你需要创建一个int 的数组,并使用strArr.length 属性的值初始化其大小。
之后,创建一个for 循环语句,其迭代次数与strArr.length 属性一样多。
对于每个循环,将strArr[i] 的值分配为intArr[i] 元素的值。
你还需要调用Integer.parseInt() 方法,将每个String 转换为int ,如下图所示:
int[] intArr = new int[strArr.length];
for (int i = 0; i < strArr.length; i++) {
intArr[i] = Integer.parseInt(strArr[i]);
}
System.out.println(Arrays.toString(intArr));
这是上面的println() 方法的输出:
[1, 2, 3, 4, 5]
然后,将一个String 转换为一个int[] 的完整代码可以被提取到一个Java静态方法中。
每次你需要将一个String 类型转换为一个int[] 类型时,你可以直接调用该方法。
让我们把这个方法命名为convertStrToIntArr() :
static int[] convertStrToIntArr(String input) {
String[] strArr = input.split("");
int[] intArr = new int[strArr.length];
for (int i = 0; i < strArr.length; i++) {
intArr[i] = Integer.parseInt(strArr[i]);
}
return intArr;
}
现在你有了这个方法,只要你需要将String 类型转换为int[] ,你就可以调用它:
public static void main(String[] args) {
String myStr = "12345";
int[] output = convertStrToIntArr(myStr);
System.out.println(Arrays.toString(output));
// [1, 2, 3, 4, 5]
}
请记住,你需要将String.split() 的模式与你的String 变量的模式相匹配。
如果你的String 变量包含空白,你可能想通过删除空格来分割它:
public static void main(String[] args) {
String myStr = "12 34 5";
String[] strArr = myStr.split(" ");
int[] intArr = new int[strArr.length];
for (int i = 0; i < strArr.length; i++) {
intArr[i] = Integer.parseInt(strArr[i]);
}
System.out.println(Arrays.toString(intArr));
// [12, 34, 5]
}
此外,你可以给convertStrToIntArr() 方法添加第二个参数,以处理你的String 变量中可能出现的变化模式。
通过向该方法添加pattern String参数并将其作为split() 参数传递,你可以在调用时确定String 模式。
为了让模式默认为一个空字符串,创建一个方法的重载,如下所示:
// Original method
static int[] convertStrToIntArr(String input) {
String[] strArr = input.split("");
int[] intArr = new int[strArr.length];
for (int i = 0; i < strArr.length; i++) {
intArr[i] = Integer.parseInt(strArr[i]);
}
return intArr;
}
// Overloaded method
static int[] convertStrToIntArr(String input, String pattern) {
String[] strArr = input.split(pattern);
int[] intArr = new int[strArr.length];
for (int i = 0; i < strArr.length; i++) {
intArr[i] = Integer.parseInt(strArr[i]);
}
return intArr;
}
现在你可以在需要自定义模式的时候调用重载方法:
String myStr1 = "12345";
int[] intArr1 = convertStrToIntArr(myStr1);
System.out.println(Arrays.toString(intArr1));
//[1, 2, 3, 4, 5]
String myStr2 = "12 34 5";
int[] intArr2 = convertStrToIntArr(myStr2, " ");
System.out.println(Arrays.toString(intArr2));
// [12, 34, 5]
现在你已经学会了如何在Java中把一个String 类型转换成一个int 数组类型。
请随意在你的Java项目中使用上面例子中的convertStrToIntArr() 方法。 😉