【Java入门100例】14字符串排序——compareT

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

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

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

题目描述

难度:简单

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

输出实例:

1
2
3
4
5
6
7
> 复制代码Apple
> apple
> boy
> dooe
> door
>
>

知识点

  • 双重循环
  • compareTo()

解题思路

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

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

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

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

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

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
java复制代码/**
* 将若干个字符串按字典顺序排
* 一条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

想进大厂

想拿高薪

想有一群志同道合的伙伴

请加入技术交流

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%