在Java中将字符串“ 0-9”转换为Int数组

时间:2019-03-28 20:49:36

标签: java arrays

有没有一种方法来转换String a =“ 031422477”;到一个int数组[] = {0,1,2,3,...}; 我已经做到了,但是我必须将字符串转换为chat数组,然后再转换为int数组。想知道是否有跳过这些步骤的方法吗?

2 个答案:

答案 0 :(得分:0)

使用Java8和流功能查看以下代码:

对于X-X这样的情景,其中X表示小于10的数字

String number = "0-9";
int[] stream = IntStream.range(Character.getNumericValue(number.charAt(0)),Character.getNumericValue(number.charAt(2))+1).toArray();
System.out.println(Arrays.toString(stream));

对于nX-nX之类的情况,其中nX表示任意数字

 String number2 = "36335-36363";
 int[] stream2 = IntStream.range( // stream range
 Integer.parseInt(number2.substring(0, number2.indexOf("-"))), 
 Integer.parseInt(number2.substring(number2.indexOf("-")+1))+1 
).toArray();
 System.out.println(Arrays.toString(stream2));

答案 1 :(得分:0)

可以一行完成,插入空格以提高可读性。

IntStream.range( // stream range
    Integer.parseInt(string.substring(0, string.indexOf("-"))), // get first number
    Integer.parseInt(string.substring(string.indexOf("-")+1))+1 // get second number
).toArray(int[]::new); // collect to an array