Java50道经典习题-程序40 字符串排序

本文深入解析了基于ASCII码值的字符串排序算法,介绍了如何利用Java的compareTo方法实现字符串数组的排序,通过具体代码示例展示了排序过程及结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:根据字符串内字符的ASCII码值对字符串数组进行排序。
分析:字符串用ASCII码比较大小,规则是:
1、比较首字母的ASCII码大小
2、若是前面的字母相同,则比较之后的字母的ASCII码值
3、若是一个字符串从首字母开始包含另一个字符串,则认为字符串长度较长的大;例 :ab > a
备注:Java中String类有一个compareTo方法,该方法返回一个int类型的数据。其比较规则是:拿出字符串的第一个字符与参数的第一个字符进行比较,如果两者不等,比较结束,返回两者的ascii差,即字符串的第一个字符减去参数的第一个字符的ascii码值.如果相等,则比较第二个字符,以此类推。比较到最后还是相等的,方法返回值为0。
比如下面的代码:“abc”.compareTo(“cad”)==-2
这里有一点需要注意:如果两个字符串的长度不同,并且一个字符串与另一个字符串的前面N个字符相等,那么这个方法返回返回两个字符串长度之差。
比如下面的代码:“fa”.compareTo(“f”)==1
public class Prog40{
    public static void main(String[] args){
        String[] str = {"abc","cad","m","fa","f"};
        for(int i=str.length-1;i>=1;i--){
            for(int j=0;j<=i-1;j++){
                //注意compareTo函数在这里的作用
                if(str[j].compareTo(str[j+1])<0){
                    String temp = str[j];
                    str[j] = str[j+1];
                    str[j+1] = temp;
                }
            }
        }
        //此处使用了增强for循环遍历数组元素
        for(String subStr:str)//定义了一个String类型的变量接收遍历后的数组元素
            System.out.print(subStr+" ");//将遍历后的数组元素依次输出
    }
}
/*运行结果
m fa f cad abc
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值