今天小黄黄又来找我了
小黄:
我有个需求, 有以下字符串
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-core 的理由 有常用的工具类 (如 小巧实用日期处理 - DateUtil ,集合处理利器 - CollectionsUtil 等) 有常用的JAVA常量类 (如 常用时间模式 — DatePattern , 常用时间间隔 —TimeInterval 等) 不必要...
feilong是一个可以让Java开发更加简单的工具库。 feilong特点: 1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等) ...如果你的项目使用JDK7,请使用feilong core 2.1.0版本。
如果你使用 maven, 您可以通过以下方式来配置 pom.xml: .... 1.10.1 .... .... feilong-repository https://raw.github.com/venusdrogon/feilong-platform/repository ....
feilong开发工具库 v4.0.8.zip
feilong开发工具库 v3.5.1.zip
为您提供feilong开发工具库下载,feilong是一个可以让Java开发更加简单的工具库。feilong特点:1、有常用的工具类 (如处理日期的DateUtil,处理集合的CollectionsUtil等)2、有常用的JAVA常量类 (如日期格式...
feilong core 让Java开发更简便的工具包Reduce development, Release ideas (减少开发,释放思想)focus on J2SE,是 核心项目详细帮助文档参见1.简介:让你从大量重复的底层代码中脱身,提高工作效率;让你的代码更简炼,...
Win32 官方API文档 飞龙整理 20141025 来源:msdn for vc6.0 7000多个API
源码学习,压缩包解压密码:www.cqlsoft.com
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...
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 dynamic ...
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 dynamic ...
清除系統垃圾 清除系統垃圾 清除系統垃圾 清除系統垃圾
该小软件是一个快捷的计算地层分辨率的小软件,大家有什么建议,可以给我回信,我的邮箱baoxs@joeco.com.cn或feilong0519@sina.com
该小软件是一个快捷的计算地层分辨率的小软件,大家有什么建议,可以给我回信,我的邮箱baoxs@joeco.com.cn或feilong0519@sina.com