我有一个字符串 s="1,2,3,4,5" 。我正在使用 split() 方法来拆分字符串,然后我想将它存储到一个整数数组中。
我尝试执行以下操作,但它不起作用。
int i[]=Integer.parseInt(s.split(","));
我想知道是否可以在不使用循环的情况下做到这一点。
C# 中有类似 Array.convertAll 的东西,但我不知道 java 中有类似的东西。
我有一个字符串 s="1,2,3,4,5" 。我正在使用 split() 方法来拆分字符串,然后我想将它存储到一个整数数组中。
我尝试执行以下操作,但它不起作用。
int i[]=Integer.parseInt(s.split(","));
我想知道是否可以在不使用循环的情况下做到这一点。
C# 中有类似 Array.convertAll 的东西,但我不知道 java 中有类似的东西。
在java中没有这样的方式(方法)可以int array
通过传递直接得到aString array
所以你必须编写一些方法来做到这一点......
如果有条件你必须不必使用循环然后......我写通过在 Adel Boutros 中添加更多代码的代码,您可能会从中获得帮助,但它对您循环更好.. :)
public class Test {
public static void main(String[] args) {
String s = "1,2,3,4,5";
int size = 0;
int[] arr = new int[s.split(",").length];
findInt(s, arr, size);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
static void findInt(String s, int[] arr, int index) {
String aa = null;
if (s == null) {
return;
}
if (s.length() != 1) {
String text = s.substring(0, s.indexOf(","));
arr[index] = Integer.parseInt(text);
} else {
arr[index] = Integer.parseInt(s);
}
if (s.length() != 1) {
aa = s.substring(s.indexOf(",") + 1, s.length());
}
findInt(aa, arr, ++index);
}
}
如果您不想使用循环,则可以调用为您执行循环的方法。
例如(您需要编写 convertToInts 方法)
int[] ints = convertToInts(s);
在纯 Java 中,没有办法做到这一点。
在 Apache Commons(尤其是 Commons Lang)中,有一些转换实用程序只接受一个带有数组的函数并做你想做的事情,你不必自己编写循环代码。
public static void main (String []args) {
String s="1,2,3,4,5";
int size = 0;
int [] arr = new int [s.length];
findInt(s, arr, size);
}
void findInt(String s, int [] arr, int index) {
if (s.isEmpty()) {
return;
}
String text = s.substring(0,s.indexOf(","));
arr[index] = Integer.parseInt(text);
findInt(text.substring(1), arr, ++index);
}
PS:我的方法使用递归的方法。变量大小将是 int 数组的实际大小。
这个可能会让你的比赛失败,但它确实避免了循环:)
public static void main(String[] args) throws Exception {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
String s = "1,2,3,4,5";
String s1 = s.replaceAll("(\\d+),?", "arr[i++]=$1;");
int[] arr = new int[s.split(",").length];
jsEngine.put("arr", arr);
jsEngine.eval("var i=0;" + s1);
}
结果是int[]
填充了字符串中的数字。