如何在Java中将包含数字的字符串[]转换为int[]?
我得到的是这个指令,它给了我一个String[]对象: 使用Arrays.asListstring.trim.split的内容类似于: [4,3,2,5,-10,23,30,40,-3,30]如何在Java中将包含数字的字符串[]转换为int[]?,java,arrays,string,casting,Java,Arrays,String,Casting,我得到的是这个指令,它给了我一个String[]对象: 使用Arrays.asListstring.trim.split的内容类似于: [4,3,2,5,-10,23,30,40,-3,30] 所以它的内容是由数字组成的。我想要的是将String[]对象转换为int[]对象。如果不将每个字符串解析为int,我怎么能做到这一点呢?你可以不用循环,但你只能得到一个列表,而不是int[] 在不将每个字符串解析为int的情况下,如何做到这一点?你不能。在某个时候,需要显式或隐式地解析它。如果您想简化代码
所以它的内容是由数字组成的。我想要的是将String[]对象转换为int[]对象。如果不将每个字符串解析为int,我怎么能做到这一点呢?你可以不用循环,但你只能得到一个列表,而不是int[]
在不将每个字符串解析为int的情况下,如何做到这一点?你不能。在某个时候,需要显式或隐式地解析它。如果您想简化代码,可以使用int[]intar=Stream.ofstrArray.maptoEntiteger::parseInt.toArray;您可以做的是创建一个函数,以手动方式将字符串转换为int,但这将是worseI不明确的。我的意思是不要直接使用循环,因为你要求的是魔法。无论您是编写一个循环,还是在流处理中隐式执行,都需要一个循环。
string.trim().split(" ");
private static class IntegerAdapter extends AbstractList<Integer> implements List<Integer> {
private final List<String> theList;
public IntegerAdapter(List<String> strings) {
this.theList = strings;
}
public IntegerAdapter(String[] strings) {
this(Arrays.asList(strings));
}
@Override
public Integer get(int index) {
return Integer.parseInt(theList.get(index));
}
@Override
public int size() {
return theList.size();
}
}
public void test(String[] args) {
String test = "4 3 2 5 -10 23 30 40 -3 30";
String[] split = test.split(" ");
IntegerAdapter adapter = new IntegerAdapter(split);
// Look ma! No loops :)
System.out.println(adapter.get(4));
}