1. 程式人生 > >java 使用TreeSet將字串中的數值進行排序

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"