关于字符串比较的一些问题(Java)

时间:2017-07-11 07:25:12

标签: java arrays string string-comparison selection-sort

为什么这段代码不起作用?你能给我一些帮助吗?

  • 我想从文件中读取60行单词,如“气味”,打印顺序中的所有值,对值进行排序,然后再次打印值。
  • 我使用compareTo作为String类型的选择排序算法。 但是,当我运行代码时,它显示如下: “线程中的异常”主“java.lang.NullPointerException at practice.selectionSort(practice.java:36) 在practice.main(practice.java:10)“

那么这段代码的问题是什么? 谢谢!!

import java.util.Scanner;
import java.io.*;
public class practice
{
   public static void main (String[] args) throws IOException
   {
      final int DATA_NUM = 60; 
      String[] array = new String[DATA_NUM];
      readData(array);
      selectionSort(array);
      printData(array);

   }

   public static String[] readData(String[] array) throws IOException 
   {
      String filename = "input.txt";
      Scanner file = new Scanner(new File(filename));
      int count = 0;
      while(file.hasNext())
      {
         String newLine = file.nextLine();
         array[count] = newLine;
         count++;
      }
      for(int i = 0; i < array.length; i++)
      {
         System.out.println(array[i]);
      }
      return array;
   }

   public static String[] selectionSort(String[] array)
   {
      for(int x = 1; x < array.length; x++)
      {
         int s = x - 1;
         for(int y = x; y < array.length; y++)
         {
            if(array[y].compareTo(array[s]) < 0)
            {
               s = y;            
            }
         }
         String minValue = array[x-1];
         array[x-1] = array[s];
         array[s] = minValue;
      }
      return array;
   }
   public static String[] printData(String[] array)
   {
      for(int i = 0; i < array.length; i++)
      {
         System.out.println(array[i]);
      }
      return array;
   }
}

0 个答案:

没有答案