java.util.Arrays.sort(str);
for(int i=0;i<str.length;i++)
    System.out.print(str[i] + " ");输入:four one six three two

解决方案 »

  1.   

    我把上面的代码加到我的程序里;报错如下:
    Exception in thread "main" java.lang.NullPointerException
            at java.lang.String.compareTo(String.java:743)
            at java.lang.String.compareTo(String.java:792)
            at java.util.Arrays.mergeSort(Arrays.java:1124)
            at java.util.Arrays.mergeSort(Arrays.java:1131)
            at java.util.Arrays.mergeSort(Arrays.java:1131)
            at java.util.Arrays.mergeSort(Arrays.java:1131)
            at java.util.Arrays.mergeSort(Arrays.java:1131)
            at java.util.Arrays.mergeSort(Arrays.java:1131)
            at java.util.Arrays.sort(Arrays.java:1074)
            at stage0.main(stage0.java:101)请问是什么错误啊?
      

  2.   

    Exception in thread "main" java.lang.NullPointerException
    是什么错误啊?
      

  3.   

    可是我的数组已经初始化了啊 
    我用的是
    String[] correctword = new String[200]; 
    来初始化,然后给correctword赋值,然后用
    Arrays.sort(correctword);
    for(p=0;p<correctword.length;p++)
       System.out.println( correctword[p].toLowerCase());
    来打印出来,有什么错误吗?
      

  4.   

    你的String数组声明的了200 的大小
    所以correctword不为空,但是里面的
    correctword[0], correctword[1] ........
    都是空null.
    我估计你只初始化了一部分,所以当排序用到后面的String时报空指针错误初始化数组可以这样
    直接
    String[] correctword = {"a", "b", "c", "d"};
      

  5.   

    顺便想问问map.iterator()... 之后打印 
    map的索引是升序的 好像是?
    map有排序的么
      

  6.   

    是的 问题就在这里,我的correctword是从文件里读出来然后存到数组里的 所以我也不知道到底有多大,只能用一个大概的大小来表示,所以不能全部初始化.排序时能不能只排前面用到的部分,不排后面没用到的哪?
      

  7.   

    你把读入的String 放到一个List里,然后用
    List的大小生成String数组
    String[] testStrArray = new String[testList.size()];
    for (int i = 0; i < testStrArray.length; i++) {
    testStrArray[i] = (String) testList.get(i);
    }
    然后再排序,就可以了
      

  8.   

    可是这样的话testList没有初始化,那testList.size()的时候不是会报错吗?
      

  9.   

    怎样把读入的string放入一个List里面哪?