一、使用類
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"