在java中将输入String转换为具有可变长度的int数组

时间:2015-04-01 14:31:27

标签: java

以下是我的代码片段。我想让用户得到一个可变长度的数字并将其转换为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)  我不明白为什么。

感谢您的帮助。

3 个答案:

答案 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)

拥有一个对象数组需要经过两个步骤。 你未能完成第二步。

  1. 声明变量以引用数组
  2.   

    前面的程序声明了一个数组(名为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)));