java字符

先定义字符串String

String  str  =  "aeiou";

定义字符 x 并取出其中第 i 个字符

char  x  =  str.charAt( i );

 

若  i  =  3  ,输出  x  的值为  "o"

 

 

 

对于字符串数组的大小排序,首先需要做的就是比较两个字符串的大小,如果直接使用>或<等符号比较字符串的大小,会直接报出错误:The operator > is undefined for the argument type(s) java.lang.String, java.lang.String。下面介绍两种比较方法:

方法1——可以通过如下的规则进行比较:

1.比较对应位置字母的ASCII码值的大小;

2.如果其中一个字符串的所有字符的ASCII码值都和另一个字符串相等,则直接比较字符串的长度,例如:abc<abcd。

方式一:(未理解)

public class StringArraySort {
    
    public static void main(String[] args) {
        String[] input=new String[] {"tmc","apad","apache","nihao","nihaoa"};
        String[] output=arraySort(input);        
        for (String out:output) {
            System.out.println(out);
        }
    }
    
    public static String[] arraySort(String[] input){       
        for (int i=0;i<input.length-1;i++){
            for (int j=0;j<input.length-i-1;j++) {
                if(isBiggerThan(input[j],input[j+1])){
                    String temp=input[j];
                    input[j]=input[j+1];
                    input[j+1]=temp;
                }
            }
        }
        return input;
    }
    
    /*如果first大于second,则返回true,否则返回false
     * 
     */
    private static boolean isBiggerThan(String first, String second){
        if(first==null||second==null||"".equals(first) || "".equals(second)){
            System.out.println("字符串不能为空!");
            return false;
        }        
        char[] arrayfirst=first.toCharArray();
        char[] arraysecond=second.toCharArray();        
        int minSize = Math.min(arrayfirst.length, arraysecond.length);        
        for (int i=0;i<minSize;i++) {
            if((int)arrayfirst[i]>(int)arraysecond[i]){
                return true;
            }else if((int)arrayfirst[i] < (int)arraysecond[i]){
                return false;
            }
        }
        if(arrayfirst.length>arraysecond.length){
            return true;
        }else {
            return false;
        }
    }

方式二:

方法2—— 可以用compareTo(String)方法,此外还有compareToIgnoreCase(String) 忽略大小写:

1.compareTo(String)方法返回值是int类型的,如果字符串相等返回值为0,不相等则返回其他数值;

2.比较时是从第一个字符开始,依次比较对应字符的大小(ASCII码值),如果第一个字符和待比较字符串的第一个字符不等,则结束比较并返回他们之间的差值(ASCII码的差值);

3.如果第一个字符相等,则继续比较后边的字符,直到比较完成。

 1 public class StringArraySort {
 2     
 3     public static void main(String[] args) {
 4         String[] input=new String[] {"tmc","apad","apache","nihao","nihaoa"};
 5         String[] keys=arraySort(input);        
 6         for (String key : keys) {
 7             System.out.println(key);
 8         }
 9     }
10     
11     public static String[] arraySort(String[] input){       
12         for (int i=0;i<input.length-1;i++){
13             for (int j=0;j<input.length-i-1;j++) {
14                 if(input[j].compareTo(input[j+1])>0){
15                     String temp=input[j];
16                     input[j]=input[j+1];
17                     input[j+1]=temp;
18                 }
19             }
20         }
21         return input;
22     }

 对于字符串的排序

字符串数组的排序(三)_两个蝴蝶飞的博客-CSDN博客_字符串数组排序

字符串比较大小,CompareTo来搞定!_weixin_34315665的博客-CSDN博客

 

注意:下面那个是比较:

在 Java 中,比较字符串的常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法。下面详细介绍这 3 个方法的使用。 equals() 方法 equals() 方法将逐个地比较两个字符串的每个字符是否相同。Java字符串比较(3种方法) (biancheng.net)   

 

 

posted @ 2022-03-20 16:31  黑衣侠客  阅读(135)  评论(0编辑  收藏  举报