java 使用TreeSet將字符串中的數值進行排序

一、使用類

1、TreeSet類

  • add(E e) 將指定的元素添加到此 set

2、String類

  • split(String regex) 根據給定正則表達式的匹配拆分此字符串。返回字符串數組

  • length() 返回此字符串的長度。

3、Integer類

  • static int parseInt(String s) 將字符串參數作爲有符號的十進制整數進行解析。

二、代碼

import java.util.TreeSet;

//需求:將字符串中的數值進行排序
//eg: String str = "8 10 15 5 2 7"排序爲 2 5 7 8 10 15

public class TreeSet練習
{
    public static void main(String[] args)
    {
        String str = "8 10 15 5 2 7";
        TreeSet tree = new TreeSet();
        String[] substr = str.split(" ");
        for(int i=0;i<substr.length;i++)
        {
            //字符串轉爲int類型數值需要使用Integer.parseInt([String])方法
            //如果不轉換爲int型,則add的時候會用String類型的compareto方法,會出現10比2小的情況
            tree.add(Integer.parseInt(substr[i]));
        }
        System.out.println(tree);
    }
}

三、截圖

這裏寫圖片描述

若用  tree.add(substr[i])
而不用 tree.add(Integer.parseInt(substr[i]))

即:不將string轉換爲int型數值,則出現:

這裏寫圖片描述

原因:

TreeSet是可以對字符串進行排序的, 因爲字符串已經實現了Comparable接口。

字符串的比較規則:

情況一:對應位置有不同的字符出現, 就比較的就是對應位置不同的字符。
如:"abc"與"aw"比較,第1位a一樣,則比較第2位,發現b比w小,則判定"abc"小於"aw"

情況二:對應位置上的字符都一樣,比較的就是字符串的長度。
如:"abc"與"abcccc"比較,前3位一樣,發現abcccc比abc長,則判定"abc"小於"abcccc"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章