今天小黄黄又来找我了
小黄:
我有个需求, 有以下字符串
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>
~ 完 ~
相关推荐
Feilong是一个旨在简化Java开发的工具库,它为开发者提供了大量的实用函数和类,以减少重复编写底层代码的工作量,提升开发效率。...在实际使用Feilong之前,建议先通过阅读文档或查看示例来了解其主要特性和用法。
Feilong开发工具库是一个广泛使用的Java开发框架,版本v4.0.8提供了一系列的工具类和组件,旨在简化开发过程,提高开发效率。这个压缩包包含的是Feilong库的核心源码,对于学习Java编程,特别是进行系统软件工具和建...
Feilong开发工具库是一个广泛使用的Java开源项目,主要用于提高开发者在构建系统和应用时的效率。这个版本,v3.5.1,包含了多个模块和功能,旨在简化常见的编程任务,提供统一的API和最佳实践。让我们深入探讨一下这...
使用 feilong-core 的理由 有常用的工具类 (如 小巧实用日期处理 - DateUtil ,集合处理利器 - CollectionsUtil 等) 有常用的JAVA常量类 (如 常用时间模式 — DatePattern , 常用时间间隔 —TimeInterval 等) 不必要...
feilong是一个可以让Java开发更加简单的工具库。 feilong特点: 1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等) ...如果你的项目使用JDK7,请使用feilong core 2.1.0版本。
Feilong库的源码提供了一个实践和学习的机会,特别是对于Java开发者来说,能够深入理解这样一个工具库的实现,将有助于提升自身的专业能力。 Feilong库可能涵盖了多个方面的功能,例如IO操作、网络通信、数据处理、...
如果你使用 maven, 您可以通过以下方式来配置 pom.xml: .... 1.10.1 .... .... feilong-repository https://raw.github.com/venusdrogon/feilong-platform/repository ....
feilong是一个可以让Java开发更加简单的工具库。feilong特点:1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等)2、有常用的JAVA常量类 (如日期格式DatePattern,时间间隔TimeInterval等)3、...
为您提供feilong开发工具库下载,feilong是一个可以让Java开发更加简单的工具库。feilong特点:1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等)2、有常用的JAVA常量类 (如日期格式...
javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享
该项目为基于Java与HTML的Feilong工具库设计源码,总计包含3428个文件,其中Java源文件3172个,XML配置文件120个,HTML文件16个,旨在简化Java开发流程,通过释放重复简单的代码灵感,提升开发效率。
feilong core 让Java开发更简便的工具包Reduce development, Release ideas (减少开发,释放思想)focus on J2SE,是 核心项目详细帮助文档参见1.简介:让你从大量重复的底层代码中脱身,提高工作效率;让你的代码更简炼,...
Win32 官方API文档 飞龙整理 20141025 来源:msdn for vc6.0 7000多个API
feilong是一个可以让Java开发更加简单的工具库。 feilong特点: 1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等) 2、有常用的JAVA常量类 (如日期格式DatePattern,时间间隔TimeInterval等) ...
打包了最新版本的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、...
飞龙 描述 飞龙是用于管理z / VM的开发SDK。 它提供了一组用于操作z / VM的API...如果您在使用此软件包时遇到任何问题,请针对打开一个错误 管治 Feilong是一个托管项目,并且按照定义进行公开管理。 文档许可证: 。
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 ...
它支持W3C标准,使用者可控制网页结构和字体。 最让飞龙惊喜的是,输入“ http://wap.baidu.com ”,你看到了什么?Opera浏览器提供WAP和WEB双重支持!也就是说电脑pc可以通过opera直接浏览手机wap网站,棒!opera...
清除系統垃圾 清除系統垃圾 清除系統垃圾 清除系統垃圾