【Java入门100例】14.字符串排序——compareTo()

1,201 阅读2分钟

这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战

点赞再看,养成习惯。微信搜索【一条coding】关注这个在互联网摸爬滚打的程序员。

本文收录于技术专家修炼,里面有我的学习路线、系列文章、面试题库、自学资料、电子书等。欢迎star⭐️

题目描述

难度:简单

将下列字符串按照字母表顺序排序,"door","apple","Apple","dooe","boy"

输出实例:

Apple
apple
boy
dooe
door

知识点

  • 双重循环
  • compareTo()

解题思路

按照逐位对比的思路,用for循环一一比对,但是字符串的比较的不像数字可以直接比较大小,除了转换为char类型比较阿斯克码外,还可以使用compareTo()

compareTo() 方法用于两种方式的比较:

  • 字符串与对象进行比较。
  • 按字典顺序比较两个字符串。

返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的长度差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。

  • 如果参数字符串等于此字符串,则返回值 0;
  • 如果此字符串小于字符串参数,则返回一个小于 0 的值;
  • 如果此字符串大于字符串参数,则返回一个大于 0 的值。

代码实现

/**
 * 将若干个字符串按字典顺序排
 * 一条coding
 */
public class question_16 {
    public static void main(String[] args) {
        String a[]={"door","apple","Apple","dooe","boy"};
        for(int i=0;i<a.length-1;i++) {
            for(int j=i+1;j<a.length;j++) {
                if(a[j].compareTo(a[i])<0) {
                    String temp=a[i];
                    a[i]=a[j];
                    a[j]=temp;
                }
            }
        }
        for(int i=0;i<a.length;i++) {
            System.out.print(a[i]+"\n");
        }
    }
}

输出结果

扩展总结

在Java8中,利用新特性streamsort()方法可能更方便的实现排序。

最后

独脚难行,孤掌难鸣,一个人的力量终究是有限的,一个人的旅途也注定是孤独的。当你定好计划,怀着满腔热血准备出发的时候,一定要找个伙伴,和唐僧西天取经一样,师徒四人团结一心才能通过九九八十一难。 所以,

如果你想学好Java

想进大厂

想拿高薪

想有一群志同道合的伙伴

请加入技术交流