求一个java排序的程序!字典顺序的!

用户输入几个英文单词,然后按照字典的顺序排列出来要使用compareto这个函数,不可以用java自带的字典排序算法函数!以上!明儿下午就要交了!求助!... 用户输入几个英文单词,然后按照字典的顺序排列出来
要使用compareto这个函数,不可以用java自带的字典排序算法函数!
以上!明儿下午就要交了!求助!
展开
 我来答
主宰比赛Eddie
2014-11-11 · TA获得超过1868个赞
知道小有建树答主
回答量:574
采纳率:0%
帮助的人:119万
展开全部
import java.util.Arrays;
import java.util.Scanner;


//必须实现Comparable接口
public class Word implements Comparable<Word>{

private final  String word;

public String getWord() {
return word;
}

//构造器什么的无视吧
public Word(String word) {
if(word == null)
throw new NullPointerException("不可以创造空单词!");
this.word = word;
}

//实现compareTo方法.主要的排序思路在这里
@Override
public int compareTo(Word target) {
if(target == null)
return 1;

if(target.getWord().equalsIgnoreCase(getWord()))
return 0;

char[] selfLetters = getWord().toLowerCase().toCharArray();
char[] targetLetters = target.getWord().toLowerCase().toCharArray();
int selfLength = selfLetters.length;
int targeLength =targetLetters.length;
int minLength = Math.min(selfLength, targeLength);

for(int index = 0;index < minLength;index++){
if(selfLetters[index] > targetLetters[index]){
return 1;
}
else if (selfLetters[index] < targetLetters[index]){
return -1;
}
continue;
}

return selfLength > targeLength ? 1 : -1 ;
}

//重写 ToString 方法以便打印输出
@Override
public String toString() {
return word;
}

//主方法.用来查看效果
public static void main(String[] args) {
 
int size = 5;//测试用的数组长度(单词数);
// 创造一个Word的数组用来保存输入的单词
Word[] words =  new Word[size];
Scanner sc = new Scanner(System.in);
for(int i=0;i<size;i++)
{
System.out.println("请输入第"+(i+1)+"个单词");
words[i] = new Word(sc.nextLine());
}
sc.close();//关闭流

System.out.println("排序结果为:");

//使用Arrays.sort方法排序,sort对自动调用你的compareTo方法来比较
Arrays.sort(words);

//打印出结果
System.out.println(Arrays.toString(words));
}
}

 这是我刚写的。测试结果还可以。逻辑可能不是很严谨 不过作为作业应该应付足够了

百度网友c8ed3589a
2014-11-11
知道答主
回答量:19
采纳率:0%
帮助的人:6万
展开全部
String s1="asdc";
String s2="asdawewqe";
int s3 = s1.compareTo(s2);
System.out.println("s1.compareTo( s2)"+s3);//c-a=2 是按照字典表排序比较第一个不同的字符处,与长度无关
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文山四方1
2014-11-11 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:61.4万
展开全部
交换两个字符串:
String s1="s1";
String s2="s2";
String tmp;
tmp=s1;
s1=s2;
s2=tmp;

s1 和 s2 交换了。
满意请采纳。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式