java-----输入5种水果的英文名称,按照第一个字母排序后输出

能给我具体的代码吗?谢谢!

具体代码如下,你建一个名为Test.java的文件,将以下代码复制,编译运行即可。

import java.util.Scanner;

public class Test {

public static void main(String [] args)
{
System.out.println("====程序开始执行!====");
while(true)
{
System.out.println("请输入五种水果的名字,中间用逗号隔开:");
Scanner r=new Scanner(System.in);
//接收用户输入
String str=r.next();
//定义正则表达式来检验用户输入格式是否合法
String regex="[a-zA-Z]+,[a-zA-Z]+,[a-zA-Z]+,[a-zA-Z]+,[a-zA-Z]+";
if(!str.matches(regex))
{
System.out.println("您输入的格式不合法,请重新输入");
continue;
}
try
{
System.out.println("您输入的序列为:["+str+"],重新输入请按1,进行排序请按2,退出请按其它任意键");
int flag=r.nextInt();
switch(flag)
{
//提示用户重新输入
case 1:
{
continue;
}
//按第一个字母排序并输出
case 2:
{
String [] tmp=str.split(",");
int length=tmp.length;
//由于只有五种水果,不涉及效率问题,用冒泡排序即可
for(int i=0;i<length-1;i++)
{
for(int j=0;j<length-i-1;j++)
{
if(tmp[j].compareTo(tmp[j+1])>0)
{
String strtmp=tmp[j];
tmp[j]=tmp[j+1];
tmp[j+1]=strtmp;
}
}
}
System.out.println("按任意键正序输出排序后结果,如想逆序输出请按n");
String outflag=r.next();
if(outflag.equals("n"))
{
System.out.print("逆序结果为:");
for(int k=length-1;k>=0;k--)
{
System.out.print("["+tmp[k]+"]");
}
System.out.println("");
}
else
{
System.out.print("正序结果为:");
for(int k=0;k<length;k++)
{
System.out.print("["+tmp[k]+"]");
}
System.out.println("");
}
}
}
//程序执行完毕,退出while循环
break;
}
catch(Exception e)
{
//出现异常 说明用户输入了非数字键,此时退出程序
break;
}
}
System.out.println("====程序执行结束!====");

}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-18
scanner对象处理输入,arraylist对象保存五水果象,调用sort方法排序。
第2个回答  2011-12-17
貌似String类里面有..可以去翻一下..貌似有个方法是按字母排序的