我正在尝试一个程序,用户在其中输入名称并将它们放入数组中。然后,应使用“选择排序”以升序对它们进行排序。我尝试这样做,但无法编译。有什么想法吗?
谢谢!
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]);
}
}
}
}
答案 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));
}
}