选择排序字符串

时间:2018-11-19 00:49:53

标签: java

我正在尝试一个程序,用户在其中输入名称并将它们放入数组中。然后,应使用“选择排序”以升序对它们进行排序。我尝试这样做,但无法编译。有什么想法吗?

谢谢!

import java.util.*;
public class SuperHeros{
   public static void main(String[]args){
      Scanner in=new Scanner(System.in);
      System.out.println("Enter 5 Super Hero Names");
      String name=in.nextLine();
      String[] Super=new String[5];

      int min=0;

      for(int i=0; i<Super.length; i++){//Enter Names in unordered list
         Super[i]=in.nextLine();
         System.out.println(Super[i]);

         min=i;
         for(int j=i+1;j<Super.length;j++){// Have an ascending list

            int temp=Super[i];
            Super[i]=Super[j];
            Super[i]=temp;
            System.out.println(Super[i]);
         }
      }
   }
}

1 个答案:

答案 0 :(得分:0)

您正在尝试将字符串分配为int temp = Super[i]处的int值。同样,在运行程序时,设置打印和in.nextLine()调用的方式也会引起问题。

import java.util.*;

public class Test{

  public static void main(String[]args){

    Scanner in=new Scanner(System.in);
    String[] Super=new String[5];

    for(int i=0; i<Super.length; i++){//Enter Names in unordered list

      System.out.println("Enter Super Hero Name: ");
      Super[i]=in.nextLine();
    }

    // Selection sort
    for (int j = 0; j < Super.length - 1; j++){

      int min = j;

      for (int k = j + 1; k < Super.length; k++){

        if (Super[k].compareTo(Super[min]) < 0){
          min = k;
        }

        String temp = Super[j];
        Super[j] = Super[min];
        Super[min] = temp;
      }
    }

    System.out.println(Arrays.toString(Super));
  }
}