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