`

使用 feilong 包来给乱乱的尺码做分组

    博客分类:
  • java
阅读更多

今天小黄黄又来找我了

小黄:

我有个需求, 有以下字符串

EUR 39, EU 39, 38, 2, AUS 38, UK 38, US 37, US 37, US 36, UK 36, UK 35, UK 12/18, UK 12-14, UK 12/21, UK 8/18, UK 8-10

我想要分组, 想要以下结果:

  • [2, 38]
  • [AUS 38]
  • [EU 39]
  • [EUR 39]
  • [UK 12-14]
  • [UK 12/18, UK 12/21]
  • [UK 35, UK 36, UK 38]
  • [UK 8-10]
  • [UK 8/18]
  • [US 36, US 37, US 37]

很好的需求, easy, 使用 #feilong-core# 包 写一个,正好活跃下大脑

1. 实现

大致步骤:

  • 转换成数组或者 list
  • 排序
  • 分组

分组注意点:

  • 数字单独放
  • 开头是字母的要注意 值是 / 或者是 -

这里使用 feilong 包很有用的方法com.feilong.core.util.CollectionsUtil.group(Iterable<String>, Transformer<String, String>)

具体的代码实现:

    /**
     * 尺码中 支持的符号. 目前由的格式有 UK 12-14, UK 12/21.
     */
    public static final List<String> SEPARATOR_LIST = toList("-", "/");

    //---------------------------------------------------------------

    public static void main(String[] args){
        String str = "EUR 39, EU 39, 38, 2, AUS 38, UK 38, US 37, US 37, US 36, UK 36, UK 35, UK 12/18, UK 12-14, UK 12/21, UK 8/18, UK 8-10";

        Map<String, List<String>> map = group(str);

        //---------------------------------------------------------------
        for (Map.Entry<String, List<String>> entry : map.entrySet()){
            List<String> value = entry.getValue();
            System.out.println(value);
        }
    }

    //---------------------------------------------------------------

    /**
     * 分组
     * @param str
     */
    private static Map<String, List<String>> group(String str){
        String[] tokenizeToStringArray = StringUtil.tokenizeToStringArray(str, ",");
        SortUtil.sortArray(tokenizeToStringArray);

        List<String> list = toList(tokenizeToStringArray);

        //---------------------------------------------------------------
        return CollectionsUtil.group(list, new Transformer<String, String>(){

            @Override
            public String transform(String input){
                //数字单独放
                if (CharUtils.isAsciiNumeric(input.charAt(0))){
                    return "Number";
                }
                //---------------------------------------------------------------
                //字母 以空格分隔
                String country = input.split(SPACE)[0];

                //包含 - 或者 /
                for (String separator : SEPARATOR_LIST){
                    String value = input.split(SPACE)[1];
                    if (value.contains(separator)){
                        return country + separator + value.split(separator)[0];
                    }
                }
                return country;
            }
        });
    }

** 输出 :**

[2, 38]
[AUS 38]
[EU 39]
[EUR 39]
[UK 12-14]
[UK 12/18, UK 12/21]
[UK 35, UK 36, UK 38]
[UK 8-10]
[UK 8/18]
[US 36, US 37, US 37]

maven 依赖

<project>

	....
	<properties>
		<version.feilong-platform>1.12.10</version.feilong-platform>
		....
	</properties>

	....
	<repositories>
		<repository>
			<id>feilong-repository</id>
			<url>https://raw.github.com/venusdrogon/feilong-platform/repository</url>
		</repository>
	</repositories>

	....
	<dependencies>
		....
		<dependency>
			<groupId>com.feilong.platform</groupId>
			<artifactId>feilong-util-all</artifactId>
			<version>${version.feilong-platform}</version>
		</dependency>
		....
	</dependencies>
	....
</project>

~ 完 ~

0
0
分享到:
评论

相关推荐

    feilong 让Java开发更简便的工具库

    Feilong是一个旨在简化Java开发的工具库,它为开发者提供了大量的实用函数和类,以减少重复编写底层代码的工作量,提升开发效率。...在实际使用Feilong之前,建议先通过阅读文档或查看示例来了解其主要特性和用法。

    feilong开发工具库 v4.0.8.zip

    Feilong开发工具库是一个广泛使用的Java开发框架,版本v4.0.8提供了一系列的工具类和组件,旨在简化开发过程,提高开发效率。这个压缩包包含的是Feilong库的核心源码,对于学习Java编程,特别是进行系统软件工具和建...

    feilong开发工具库 v3.5.1.zip

    Feilong开发工具库是一个广泛使用的Java开源项目,主要用于提高开发者在构建系统和应用时的效率。这个版本,v3.5.1,包含了多个模块和功能,旨在简化常见的编程任务,提供统一的API和最佳实践。让我们深入探讨一下这...

    feilong开发工具库.rar

    使用 feilong-core 的理由 有常用的工具类 (如 小巧实用日期处理 - DateUtil ,集合处理利器 - CollectionsUtil 等) 有常用的JAVA常量类 (如 常用时间模式 — DatePattern , 常用时间间隔 —TimeInterval 等) 不必要...

    feilong开发工具库-其他

    feilong是一个可以让Java开发更加简单的工具库。 feilong特点: 1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等) ...如果你的项目使用JDK7,请使用feilong core 2.1.0版本。

    feilong开发工具库 v3.0.8-源码.zip

    Feilong库的源码提供了一个实践和学习的机会,特别是对于Java开发者来说,能够深入理解这样一个工具库的实现,将有助于提升自身的专业能力。 Feilong库可能涵盖了多个方面的功能,例如IO操作、网络通信、数据处理、...

    JSP常用自定义标签集feilong-taglib.zip

    如果你使用 maven, 您可以通过以下方式来配置 pom.xml:    ....    1.10.1  ....    ....      feilong-repository  https://raw.github.com/venusdrogon/feilong-platform/repository      ....

    feilong开发工具库 v4.1.2

    feilong是一个可以让Java开发更加简单的工具库。feilong特点:1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等)2、有常用的JAVA常量类 (如日期格式DatePattern,时间间隔TimeInterval等)3、...

    feilong开发工具库 v3.0.8

    为您提供feilong开发工具库下载,feilong是一个可以让Java开发更加简单的工具库。feilong特点:1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等)2、有常用的JAVA常量类 (如日期格式...

    feilong-core-1.10.0.jar

    javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享

    基于Java与HTML的feilong工具库设计源码,简化Java开发流程,释放重复代码灵感

    该项目为基于Java与HTML的Feilong工具库设计源码,总计包含3428个文件,其中Java源文件3172个,XML配置文件120个,HTML文件16个,旨在简化Java开发流程,通过释放重复简单的代码灵感,提升开发效率。

    feilong-core:减少开发,发布想法

    feilong core 让Java开发更简便的工具包Reduce development, Release ideas (减少开发,释放思想)focus on J2SE,是 核心项目详细帮助文档参见1.简介:让你从大量重复的底层代码中脱身,提高工作效率;让你的代码更简炼,...

    Win32 官方API文档 飞龙整理 20141025

    Win32 官方API文档 飞龙整理 20141025 来源:msdn for vc6.0 7000多个API

    feilong开发工具库源代码

    feilong是一个可以让Java开发更加简单的工具库。 feilong特点: 1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等) 2、有常用的JAVA常量类 (如日期格式DatePattern,时间间隔TimeInterval等) ...

    JSONObject所需jsonlib.jar及其依赖相关包(最新版本)

    打包了最新版本的json-lib.jar及其依赖包。里面包括:json-lib-2.4-jdk15.jar、commons-beanutils-1.9.jar、commons-collections-3.2.jar、commons-lang-2.6.jar、commons-logging-1.2.jar、ezmorph-1.0.6.jar、...

    feilong:飞龙是开放大型机项目下的一个开源zVM云连接器项目,它将加速zVM的采用,扩展其生态系统和用户体验。 它提供了一组用于操作zVM的API,包括来宾,映像,网络,卷等

    飞龙 描述 飞龙是用于管理z / VM的开发SDK。 它提供了一组用于操作z / VM的API...如果您在使用此软件包时遇到任何问题,请针对打开一个错误 管治 Feilong是一个托管项目,并且按照定义进行公开管理。 文档许可证: 。

    hxyFrame后台管理系统.rar

    feilong开发工具库 v3.3.9 JGroups群组通讯工具包 v5.2.11 dp-BOOT 权限管理系统 v1.0 魔金多商户商城 v1.0 RunJS 代码编辑分享平台 v1.0 torna接口文档解决方案 v1.19.4 code-gen代码生成工具 v1.6.1 ...

    wap测试工具

    它支持W3C标准,使用者可控制网页结构和字体。 最让飞龙惊喜的是,输入“ http://wap.baidu.com ”,你看到了什么?Opera浏览器提供WAP和WEB双重支持!也就是说电脑pc可以通过opera直接浏览手机wap网站,棒!opera...

    清 除 系 統 垃 圾

    清除系統垃圾 清除系統垃圾 清除系統垃圾 清除系統垃圾

Global site tag (gtag.js) - Google Analytics