如何在Java中将包含数字的字符串[]转换为int[]?

如何在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[]对象:

使用Arrays.asListstring.trim.split的内容类似于: [4,3,2,5,-10,23,30,40,-3,30]


所以它的内容是由数字组成的。我想要的是将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));
}