以下是我的代码片段。我想让用户得到一个可变长度的数字并将其转换为int数组。 示例:输入:352040,输出:{3,5,2,0,4,0}
Scanner in = new Scanner(System.in);
System.out.println(" Enter your size number: ");
int length = in.nextInt();
System.out.println(" Enter a number: ");
int number = in.nextInt();
int[] intArray = null;
String str = Integer.toString(number);
for ( int i =0; i < length ;i++)
intArray[i] = Integer.parseInt(String.valueOf(str.charAt(i)));
System.out.println(Arrays.toString(intArray));
这会出现错误(线程中的异常&#34; main&#34; java.lang.NullPointerException) 我不明白为什么。
感谢您的帮助。
答案 0 :(得分:1)
同意评论,拆分(&#34;&#34;)仅适用于javascript
这是一个代码片段,可以执行OP想要的...
String s = "352040";
int[] intArray = new int[s.length()];
for(int i = 0; i < s.length(); i++) {
intArray[i] = Integer.valueOf(s.substring(i, i+1));
}
System.out.println(Arrays.toString(intArray));
答案 1 :(得分:0)
拥有一个对象数组需要经过两个步骤。 你未能完成第二步。
前面的程序声明了一个数组(名为anArray) 以下代码行:
//声明一个整数数组int [] anArray;
<强> 2。创建,初始化和访问数组
创建数组的一种方法是使用new运算符。 ArrayDemo程序中的下一个语句分配一个足够的数组 内存为10个整数元素,并将数组分配给anArray 变量
//创建一个整数数组anArray = new int [10];如果这 语句丢失,然后编译器打印出类似的错误 跟随,编译失败:
ArrayDemo.java:4:变量anArray可能尚未初始化。
如何解决您的问题:
而不是您的数组变量指向null,通过创建它来指向数组对象:
int[] intArray = new int[length];
答案 2 :(得分:-1)
您需要先创建阵列。
int[] intArray = new int[length]; // Create array
String str = Integer.toString(number);
for ( int i =0; i < length -1;i++)
intArray[i] = Integer.parseInt(String.valueOf(str.charAt(i)));