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