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


    题目:根据字符串内字符的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

     1 public class Prog40{
     2     public static void main(String[] args){
     3         String[] str = {"abc","cad","m","fa","f"};
     4         for(int i=str.length-1;i>=1;i--){
     5             for(int j=0;j<=i-1;j++){
     6                 //注意compareTo函数在这里的作用
     7                 if(str[j].compareTo(str[j+1])<0){
     8                     String temp = str[j];
     9                     str[j] = str[j+1];
    10                     str[j+1] = temp;
    11                 }
    12             }
    13         }
    14         //此处使用了增强for循环遍历数组元素
    15         for(String subStr:str)//定义了一个String类型的变量接收遍历后的数组元素
    16             System.out.print(subStr+" ");//将遍历后的数组元素依次输出
    17     }
    18 }
    19 /*运行结果
    20 m fa f cad abc
    21 */
  • 相关阅读:
    nginx (待更新)
    根据 thread id 停止一个线程
    Redis 消息订阅
    faker smtp server
    DRF lazy Serializer
    python super
    django patch
    django patch 解决 ["'15428560000' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]
    自己的随笔
    CSS中文乱码解决方法
  • 原文地址:https://www.cnblogs.com/parkour1026/p/10796547.html
Copyright © 2020-2023  润新知