java 使用TreeSet將字串中的數值進行排序
阿新 • • 發佈:2019-02-13
一、使用類
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"