underscore.string.java 是一个Java中方便操作字符串的类库,提供了众多帮助方法。
写过 Javascript 代码的人,估计没有几个不知道 underscore 这个类库的,因为它太好(有)用了,尽管现如今由于实现上不够优雅的缘故,已经被lodash所取代。而我想介绍的是 github 上 star 3000+的 underscore.string,它原本是 underscore 的扩展,不过现在已经演变成独立的库。顾名思义,它的作用就是弥补 Javascript 本身对于字符串操作支持的匮乏。 举个例子:
var slugify = require("underscore.string/slugify");
slugify("Hello world!");
-> hello-world
slugify
是一种规整字符串的操作,常用于把url中的非法字符规整成 word-word 的模样。比如,我的这篇 blog 是通过 hexo 生成的 hexo new "Underscore.string.java"
,它会自动帮我转换成 2017-09-06-Underscore-string-java 这样的亲和url的格式。
接触这个类库的时候,我正在使用 google guava,惊讶于这里头的各类操作,包括 ImmutableList、CharMatcher、Strings 等等。一来准备针对 guava 练练手,二来确实想学习一下 underscore.string 的操作,所以就开始着手写起了 underscore.string.java 这个项目。编写的过程中确实学到了不少平常不太可能接触到的设计方法。
这个类库已经正式发布在 Maven Central Repository. 最新版本是 0.2.0.
repositories {
mavenCentral()
}
dependencies {
compile 'com.lambeta:underscore.string.java:0.2.0'
}
<dependency>
<groupId>com.lambeta</groupId>
<artifactId>underscore.string.java</artifactId>
<version>0.2.0</version>
</dependency>
repositories {
maven {
url 'https://oss.sonatype.org/content/groups/public'
}
}
dependencies {
compile ("com.lambeta:underscore.string.java:0.2.1-SNAPSHOT")
}
<repositories>
<repository>
<id>my-repo</id>
<name>sonatype</name>
<url>https://oss.sonatype.org/content/groups/public</url>
</repository>
</repositories>
<dependency>
<groupId>com.lambeta</groupId>
<artifactId>underscore.string.java</artifactId>
<version>0.2.1-SNAPSHOT</version>
</dependency>