练习:要对字符串进行长度(由短到长)排序。

/**
 *    字符串由短到长的排序
 *    思路:
 *    1.排序,想到TreeSet集合,因为字符串扔到TreeSet集合中,能自动排序.
 *    2.字符串排序,是因为字符串本身具备自然排序的功能.
 *    3.但是依靠的是它的自然排序是字母由小到大排序,所以只能用比较器定义长度排序
 *    4.而且TreeSet直接能在构造方法中传入比较器.
 *    5.输出结果.
 */
public class TreeSetTest {

    public static void main(String[] args) {
        Set strSet = new TreeSet(new Comparator(){
            /*这里我用了匿名内部类的方法,写在外面也可以*/
            public int compare(Object o1, Object o2) {
                String str1 = (String)o1;
                String str2 = (String)o2;
                int temp = str1.length()- str2.length();
                return temp==0? str1.compareTo(str2):temp;
            }
        });
        strSet.add("zsgasg");
        strSet.add("zsg");
        strSet.add("zsgzg");
        strSet.add("zsgansds");

        for(Iterator it = strSet.iterator();it.hasNext();){
            System.out.println(it.next());
        }
    }
}

时间: 2024-10-03 22:54:23

练习:要对字符串进行长度(由短到长)排序。的相关文章

输入3个字符串,按字符串由短到长的顺序输出

输入3个字符串,按字符串由短到长的顺序输出,要求使用指针. #include "stdafx.h" #include<iostream> #include<string.h> #include<stdio.h> using namespace std; char a[80],b[80],c[80]; char *p1,*p2,*p3; //输入三个字符串,三个字符型指针分别三个字符串 int _tmain(int argc, _TCHAR* argv

在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标

录入两个字符串,一个字符串是另一个字符串的字串,输出子串首字母在长字符串的位置. 两个解决办法 使用库函数strncmp(str1,str2,n); 功能:比较str1和str2两个字符串的前n个字母,一一比较,若str1大则返回1,若str1和str2相等,则返回0,否则返回-1: int compare(char *str1, char *str2) { int i; int lenstr1 = strlen(str1); int lenstr2 = strlen(str2); if( le

灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?

限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个主题.说实话,我当时脑海中浮现出了这样一副惊心动魄的画面: 面试官老马坐在我的对面,地中海式的发型令我敬佩有加.尽管略显疲惫,但他仍然自信地向我抛出了上面这个问题.稍稍迟疑了一下,我回答说:"数组用 length,字符串用 length 跟上小括号".老马不愧是面试中的高手,一瞬间就从我的

字符串工具类(指定字符串的长度和判断是否为空等方法)

package com.sec.util; /** * 字符串工具类 * @author Administrator * */public class StringUtil { /** * 过滤<,>,\n 字符串的方法 * @param input * @return */ public static String filterHTML(String input){ if(input == null || input.length() == 0){ return input; } input

SqlSever基础 len函数 计算前后都有空格的字符串的长度时

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 --阿弥陀佛前面有三个空格,后面有三个空格 2 select len(' 阿弥陀佛 ') --查看字符串的长度,不包括后面的空格 3 union 4 select DATALENGTH(' 阿弥陀佛 ') --查看字符串所占的字节数,什么空格不空格的,全都算上了 5 --ncha

SqlSever基础 datalength函数 计算前后都有空格的字符串的长度

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 --阿弥陀佛前面有三个空格,后面有三个空格 2 select len(' 阿弥陀佛 ') --查看字符串的长度,不包括后面的空格 3 union 4 select DATALENGTH(' 阿弥陀佛 ') --查看字符串所占的字节数,什么空格不空格的,全都算上了 5 --ncha

PHP 统计中文字符串的长度

中文网站一般会选择两种编码:gbk/gb2312或是utf-8. gbk编码下每个中文字符所占字节为2,例: $zhStr = ‘您好,中国!’; echo strlen($zhStr); // 输出:12 UTF-8编码下每个中文字符占3个字节. $zhStr = ‘您好,中国!’; echo strlen($zhStr); // 输出:18 那么如何计算这组中文字符串的长度呢?有人可能会说gbk下获取中文字符串长度除以2,utf-8编码下除以3不就行了吗?但是您要考虑字符串并不老实,99%的

【JavaScript】计算字符串的长度

定义: functionGetChineseCount(str) { varchinieseCount=0; varbadChar="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; badChar+="abcdefghijklmnopqrstuvwxyz"; badChar+="0123456789"; badChar+=""+" ";//半角与全角空格 badChar+="`[emai

字符串的长度,是字符数量,还是字节数量?

当计算字符串的长度时,大多数人脑海中闪现的第一个函数是:Len(),该函数返回的字符的数量(number of characters),不包含结尾空格,但是包含前导空格. 示例,Len 函数返回的是字符的数量,而不是字符的字节数量. declare @str_v varchar(10) declare @str_nv nvarchar(10) set @str_v=' ab ' set @str_nv=N' ab ' select len(@str_v) as len_v,len(@str_nv