在java中排序字符串数组

Joh*_*hnH 0 java sorting

我有两个字符串数组中ar1ar2,我从文件中读取输入和存储阵列,ar1包含

Cat
Lam
Orange
Kam
Ramveer
None
Tue
Apple
Run Code Online (Sandbox Code Playgroud)

ar2包含

Dog
elephant
Kam
Monday
Parrot
Queen
Ramveer
Tuesday
Xmas
Run Code Online (Sandbox Code Playgroud)

我试图按字母顺序排序数组,我正在使用Array.sort(),但获得异常

Exception in thread "main" java.lang.NullPointerException
at java.util.ComparableTimSort.binarySort(ComparableTimSort.java:232)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:176)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
at java.util.Arrays.sort(Arrays.java:472)
at CompareArrays.pr1(CompareArrays.java:51)
at CompareArrays.main(CompareArrays.java:86)
Run Code Online (Sandbox Code Playgroud)

Java结果:1成功建立(总时间:0秒)

File file1= new File("C:\\Users\\Ramveer\\Desktop\\updates\\f1.txt");
File file2=new File("C:\\Users\\Ramveer\\Desktop\\updates\\f2.txt");
Scanner sc1=new Scanner(file1);
Scanner sc2=new Scanner(file2);
while(sc1.hasNextLine()){
ar1[c1]=sc1.nextLine();
c1++;
}

while(sc2.hasNextLine()){
ar2[c2]=sc2.nextLine();
c2++;
 }
  Arrays.sort(ar1);
  for(int k=0;k<c1;k++){
      System.out.println(ar1[k]);}

  }
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒.谢谢!

Mar*_*nik 8

由于您使用的是数组,因此必须事先预测条目数.看起来你的预测是关闭的,所以一些数组元素保持不变null.

请考虑使用ArrayList而不是原始数组.排序完成Collections.sort.