java 使用TreeSet将字符串中的数值进行排序

来源:互联网 发布:多普达 知乎 编辑:程序博客网 时间:2024/05/16 15:21

一、使用类

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 15public 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"
原创粉丝点击