有个排序程序如下(错误地方我已将它标注):
import java.util.*;
public class Sort
{
public static void BubbleSort(int a[])
{
int i,j,temp;
for(i=0;i<a.length;i++)
for(j=0;j<a.length-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
System.out.println("the sorted num is:");
for(i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
public static void InsertSort(int a[])
{
int i,inserter,index;
for(i=1;i<a.length;i++)
{
inserter=a[i];
index=i-1;
while(index>=0&&inserter<a[index])
{
a[index+1]=a[index];
index--;
}
a[index+1]=inserter;
}
System.out.println("the sorted num is:");
for(i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
public static void main(String [] args)
{
int n,m;
String str;
Scanner input=new Scanner(System.in);
System.out.print("Please input how many data the array have:");
n=input.nextInt();
int a[]=new int[n];
System.out.print("input "+n+" elements:");
for(int i=0;i<n;i++)
{
a[i]=input.nextInt();
}
System.out.println("\t\tstart to sort number");
System.out.println("*********************************************");
System.out.println("\t\t 1.Bubble Sort");
System.out.println("\t\t 2.Insert Sort");
System.out.println("*********************************************");
System.out.print("chose your method to sort number:");
m=input.nextInt();
do{
switch(m)
{
case 1: BubbleSort(a); break;
case 2: InsertSort(a); break;
default: System.out.print("your choose is ,please chose again!");break;
}
}while(m!=1&&m!=2);
System.out.println("\nwhether you want to continue to sort num or not,if you want to continue ,please input Y,else input N.");
str=input.next();
while(str=="Y") //无法比较
{
System.out.print("chose your method to sort number:");
m=input.nextInt();
switch(m)
{
case 1: BubbleSort(a); break;
case 2: InsertSort(a); break;
default: System.out.print("your choose is ,please chose again!");break;
}
str=input.next();
}
}
}
为什么不能进行字符比较,可不可以输入字符char 型数据(如果可以就写下来一下)。因为刚学程序,算法不是很好,希望高手帮我改哈,不甚感谢。