Java8中字符串处理库strman-java的使用示例

介绍

Strmen-java是一个字符串处理工具,你可以通过maven将它引入到项目中。Strmen-java为我们提供了一个非常完整且强大的解决方案,使用它可以解决几乎所有字符串处理场景。

使用

为了能在你的Java应用程序中使用strman-java,可以把这个包下载下来添加到你项目的lib目录中,如果使用的是Maven做项目管理,则只需要在你的pom.xml中加入如下依赖即可:

<dependency>
 <groupId>com.shekhargulati</groupId>
 <artifactId>strman</artifactId>
 <version>0.2.0</version>
 <type>jar</type>
</dependency> 

如果是Gradle用户则在build.gradle文件中添加如下代码:

compile(group: 'com.shekhargulati', name: 'strman', version: '0.2.0', ext: 'jar'){
 transitive=true
}

示例

下面便是Strman-java的使用示例:

import strman.Strman;
import java.util.Arrays;
import java.util.Optional;

/**
 * strman-java包的测试使用类
 * Created by blinkfox on 16/7/17.
 */
public class StrmanTest {

 public static void main(String[] args) {
  // append 在一个字符串后追加任意个数的字符串
  String s1 = Strman.append("f", "o", "o", "b", "a", "r");
  System.out.println("append:" + s1); // result => "foobar"

  // prepend 在一个字符串前追加任意个数的字符串
  String s1pre = Strman.prepend("r", "f", "o", "o", "b", "a");
  System.out.println("prepend:" + s1pre); // result => "foobar"

  // appendArray 在一个字符串后先后追加一个字符串数组中的元素
  String s2 = Strman.appendArray("f", new String[]{"o", "o", "b", "a", "r"});
  System.out.println("append:" + s2); // result => "foobar"

  // at 根据字符串的索引获取到对应的字符。如果索引是负数,则逆向获取,超出则抛出异常
  Optional<String> s3 = Strman.at("foobar", 3);
  System.out.println("at:" + s3.get()); // result => "b"

  // between 得到一个字符串中,开始字符串和结束字符串之间的字符串的数组
  String[] s4 = Strman.between("[abc], [def]", "[", "]");
  System.out.println("between:" + Arrays.toString(s4)); // result => "[abc, def]"

  // chars 得到一个字符串中所有字符构成的字符串数组
  String[] s5 = Strman.chars("title");
  System.out.println("chars:" + Arrays.toString(s5)); // result => "[t, i, t, l, e]"

  // collapseWhitespace 替换掉连续的多个空格为一个空格
  String s6 = Strman.collapseWhitespace("foo bar");
  System.out.println("chars:" + s6); // result => "foo bar"

  // contains 判断一个字符串是否包含另外一个字符串,第三个参数,表示字符串大小写是否敏感
  boolean s7 = Strman.contains("foo bar", "foo");
  boolean s8 = Strman.contains("foo bar", "FOO", false);
  System.out.println("contains:" + s7 + ", " + s8); // result => "true, true"

  // containsAll 判断一个字符串是否包含某字符串数组中的所有元素
  boolean s9 = Strman.containsAll("foo bar", new String[]{"foo", "bar"});
  boolean s10 = Strman.containsAll("foo bar", new String[]{"FOO", "bar"}, false);
  System.out.println("containsAll:" + s9 + ", " + s10); // result => "true, true"

  // containsAny 判断一个字符串是否包含某字符串数组中的任意一个元素
  boolean s11 = Strman.containsAny("foo bar", new String[]{"FOO", "BAR", "Test"}, false);
  System.out.println("containsAny:" + s11); // result => "true"

  // countSubstr 判断一个字符串包含某字符串的个数
  long s12 = Strman.countSubstr("aaaAAAaaa", "aaa");
  long s13 = Strman.countSubstr("aaaAAAaaa", "aaa", false, false);
  System.out.println("countSubstr:" + s12 + ", " + s13); // result => "2, 3"

  // endsWith 判断一个字符串是否以某个字符串结尾
  boolean s14 = Strman.endsWith("foo bar", "bar");
  boolean s15 = Strman.endsWith("foo bar", "BAR", false);
  System.out.println("endsWith:" + s14 + ", " + s15); // result => "true, true"

  // ensureLeft 确保一个字符串以某个字符串开头,如果不是,则在前面追加该字符串,并将字符串结果返回
  String s16 = Strman.ensureLeft("foobar", "foo");
  String s17 = Strman.ensureLeft("bar", "foo");
  String s18 = Strman.ensureLeft("foobar", "FOO", false);
  System.out.println("ensureLeft:" + s16 + ", " + s17 + ", " + s18);
  // result => "foobar, foobar, foobar"

  // ensureRight 确保一个字符串以某个字符串开头,如果不是,则在前面追加该字符串,并将字符串结果返回
  String s16r = Strman.ensureRight("foobar", "bar");
  String s17r = Strman.ensureRight("foo", "bar");
  String s18r = Strman.ensureRight("fooBAR", "bar", false);
  System.out.println("ensureRight:" + s16r + ", " + s17r + ", " + s18r);
  // result => "foobar, foobar, fooBAR"

  // base64Encode 将字符串转成Base64编码的字符串
  String s19 = Strman.base64Encode("strman");
  System.out.println("base64Encode:" + s19); // result => "c3RybWFu"

  // binDecode 将二进制编码(16位)转成字符串字符
  String s20 = Strman.binDecode("0000000001000001");
  System.out.println("binDecode:" + s20); // result => "A"

  // binEncode 将字符串字符转成二进制编码(16位)
  String s21 = Strman.binEncode("A");
  System.out.println("binEncode:" + s21); // result => "0000000001000001"

  // decDecode 将十进制编码(5位)转成字符串字符
  String s22 = Strman.decDecode("00065");
  System.out.println("decDecode:" + s22); // result => "A"

  // decEncode 将字符串转成十进制编码(5位)
  String s23 = Strman.decEncode("A");
  System.out.println("decEncode:" + s23); // result => "00065"

  // first 得到从字符串开始到索引n的字符串
  String s24 = Strman.first("foobar", 3);
  System.out.println("first:" + s24); // result => "foo"

  // last 得到从字符串结尾倒数索引n的字符串
  String s24l = Strman.last("foobar", 3);
  System.out.println("last:" + s24l); // result => "bar"

  // head 得到字符串的第一个字符
  String s25 = Strman.head("foobar");
  System.out.println("head:" + s25); // result => "f"

  // hexDecode 将字符串字符转成十六进制编码(4位)
  String s26 = Strman.hexDecode("0041");
  System.out.println("hexDecode:" + s26); // result => "A"

  // hexEncode 将十六进制编码(4位)转成字符串字符
  String s27 = Strman.hexEncode("A");
  System.out.println("hexEncode:" + s27); // result => "0041"

  // inequal 测试两个字符串是否相等
  boolean s28 = Strman.inequal("a", "b");
  System.out.println("inequal:" + s28); // result => "true"

  // insert 将子字符串插入到字符串某索引位置处
  String s29 = Strman.insert("fbar", "oo", 1);
  System.out.println("insert:" + s29); // result => "foobar"

  // leftPad 将字符串从左补齐直到总长度为n为止
  String s30 = Strman.leftPad("1", "0", 5);
  System.out.println("leftPad:" + s30); // result => "00001"

  // rightPad 将字符串从右补齐直到总长度为n为止
  String s30r = Strman.rightPad("1", "0", 5);
  System.out.println("rightPad:" + s30r); // result => "10000"

  // lastIndexOf 此方法返回在指定值的最后一个发生的调用字符串对象中的索引,从偏移量中向后搜索
  int s31 = Strman.lastIndexOf("foobarfoobar", "F", false);
  System.out.println("lastIndexOf:" + s31); // result => "6"

  // leftTrim 移除字符串最左边的所有空格
  String s32 = Strman.leftTrim(" strman ");
  System.out.println("leftTrim:" + s32); // result => "strman "

  // rightTrim 移除字符串最右边的所有空格
  String s32r = Strman.rightTrim(" strman ");
  System.out.println("rightTrim:" + s32r); // result => " strman"

  // removeEmptyStrings 移除字符串数组中的空字符串
  String[] s33 = Strman.removeEmptyStrings(new String[]{"aa", "", " ", "bb", "cc", null});
  System.out.println("removeEmptyStrings:" + Arrays.toString(s33));
  // result => "[aa, bb, cc]"

  // removeLeft 得到去掉前缀(如果存在的话)后的新字符串
  String s34 = Strman.removeLeft("foobar", "foo");
  System.out.println("removeLeft:" + s34); // result => "bar"

  // removeRight 得到去掉后缀(如果存在的话)后的新字符串
  String s34r = Strman.removeRight("foobar", "bar");
  System.out.println("removeRight:" + s34r); // result => "foo"

  // removeNonWords 得到去掉不是字符的字符串
  String s35 = Strman.removeNonWords("foo&bar-");
  System.out.println("removeNonWords:" + s35); // result => "foobar"

  // removeSpaces 移除所有空格
  String s36 = Strman.removeSpaces(" str man ");
  System.out.println("removeSpaces:" + s36); // result => " strman"

  // repeat 得到给定字符串和重复次数的新字符串
  String s37 = Strman.repeat("1", 3);
  System.out.println("repeat:" + s37); // result => "111"

  // reverse 得到反转后的字符串
  String s38 = Strman.reverse("foobar");
  System.out.println("reverse:" + s38); // result => "raboof"

  // safeTruncate 安全的截断字符串,不切一个字的一半,它总是返回最后一个完整的单词
  String s39 = Strman.safeTruncate("A Javascript string manipulation library.", 19, "...");
  System.out.println("safeTruncate:" + s39); // result => "A Javascript..."

  // truncate 不太安全的截断字符串
  String s40 = Strman.truncate("A Javascript string manipulation library.", 19, "...");
  System.out.println("truncate:" + s40); // result => "A Javascript str..."

  // htmlDecode 将html字符反转义
  String s41 = Strman.htmlDecode("&SHcy;");
  System.out.println("htmlDecode:" + s41); // result => "Ш"

  // htmlEncode 将html字符转义
  String s42 = Strman.htmlEncode("Ш");
  System.out.println("htmlEncode:" + s42); // result => "&SHcy;"

  // shuffle 将给定字符串转成随机字符顺序的字符串
  String s43 = Strman.shuffle("shekhar");
  System.out.println("shuffle:" + s43); // result => "rhsheak"

  // slugify 将字符串分段(用"-"分段)
  String s44 = Strman.slugify("foo bar");
  System.out.println("slugify:" + s44); // result => "foo-bar"

  // transliterate 删除所有非有效字符,如:á => a
  String s45 = Strman.transliterate("fóõ bár");
  System.out.println("transliterate:" + s45); // result => "foo bar"

  // surround 给定的“前缀”和“后缀”来包裹一个字符串
  String s46 = Strman.surround("div", "<", ">");
  System.out.println("surround:" + s46); // result => "<div>"

  // tail 得到去掉第一个字符后的字符串
  String s47 = Strman.tail("foobar");
  System.out.println("tail:" + s47); // result => "oobar"

  // toCamelCase 转成驼峰式的字符串
  String s48 = Strman.toCamelCase("Camel Case");
  String s48_2 = Strman.toCamelCase("camel-case");
  System.out.println("tail:" + s48 + ", " + s48_2); // result => "camelCase, camelCase"

  // toStudlyCase 转成Studly式的字符串
  String s49 = Strman.toStudlyCase("hello world");
  System.out.println("toStudlyCase:" + s49); // result => "HelloWorld"

  // toDecamelize 转成Decamelize式的字符串
  String s50 = Strman.toDecamelize("helloWorld", null);
  System.out.println("toDecamelize:" + s50); // result => "hello world"

  // toKebabCase 转成Kebab式的字符串
  String s51 = Strman.toKebabCase("hello World");
  System.out.println("toKebabCase:" + s51); // result => "hello-world"

  // toSnakeCase 转成Snake式的字符串
  String s52 = Strman.toSnakeCase("hello world");
  System.out.println("toSnakeCase:" + s52); // result => "hello_world"
 }

}

总结

以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • JavaSciprt中处理字符串之sup()方法的使用教程

    这种方法会导致字符串显示为上标,就好像它是在一个<sup>标记. 语法 string.sup( ) 下面是参数的详细信息: NA 返回值: 返回字符串带有<sup>标记 例子: <html> <head> <title>JavaScript String sup() Method</title> </head> <body> <script type="text/javascript"

  • Java中去除字符串中所有空格的几种方法

    JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间  复制代码 代码如下: String str = " hell o ";  String str2 = str.replaceAll(" ", "");  System.out.println(str2); 3.或者replaceAll("

  • 使用java处理字符串公式运算的方法

    在改进一个关于合同的项目时,有个需求,就是由于合同中非数据项的计算公式会根据年份而进行变更,而之前是将公式硬编码到系统中的,只要时间一变,系统就没法使用了,因此要求合同中各个非基础数据的项都能自定义公式,根据设置的公式来自动生成报表和合同中的数据. 显然定义的公式都是以字符串来存储到数据库的,可是java中没有这种执行字符串公式的工具或者类,而且是公式可以嵌套一个中间公式.比如:基础数据dddd是56,而一个公式是依赖dddd的,eeee=dddd*20,而最终的公式可能是这样:eeee*-12

  • JAVA 十六进制与字符串的转换

    toHexString public static String toHexString(int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式. 如果参数为负,那么无符号整数值为参数加上 232:否则等于该参数.将该值转换为十六进制(基数 16)的无前导 0 的 ASCII 数字字符串.如果无符号数的大小值为零,则用一个零字符 '0' ('\u0030') 表示它:否则,无符号数大小的表示形式中的第一个字符将不是零字符.用以下字符作为十六进制数字: 0123456789abcd

  • Java String字符串和Unicode字符相互转换代码

    java环境安装后jdk的bin目录有个native2ascii.exe可以实现类似的功能,但是通过java代码也可以实现同样的功能. 字符串转换unicode java方法代码片段: 复制代码 代码如下: /**  * 字符串转换unicode  */ public static String string2Unicode(String string) {       StringBuffer unicode = new StringBuffer();       for (int i = 0

  • Java正则多字符串匹配替换

    Java中使用也比较简单:1. 编译正则表达式的字面值得到对应的模式Pattern对象: 2. 创建匹配给定输入与此模式的匹配器Matcher: 3. 通过匹配器对象执行操作,匹配器对象的方法很丰富,方法之间组合使用更加强大. 复制代码 代码如下: public static void main(String[] args) {     //被替换关键字的的数据源     Map<String,String> tokens = new HashMap<String,String>(

  • Java生成和解析XML格式文件和字符串的实例代码

    1.基础知识: Java解析XML一般有四种方法:DOM.SAX.JDOM.DOM4J. 2.使用介绍 1).DOM (1)简介 由W3C(org.w3c.dom)提供的接口,它将整个XML文档读入内存,构建一个DOM树来对各个节点(Node)进行操作.优点就是整个文档都一直在内存中,我们可以随时访问任何节点,并且对树的遍历也是比较熟悉的操作:缺点则是耗内存,并且必须等到所有的文档都读入内存才能进行处理. (2)示例代码: 复制代码 代码如下: <?xml version="1.0&quo

  • java的io操作(将字符串写入到txt文件中)

    复制代码 代码如下: import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.PrintStream;import java.io.PrintWriter;import java.io.RandomAccessFile; public cla

  • JAVA中字符串函数subString的用法小结

    String str;str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str=str.substring(int beginIndex,int endIndex);截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str; demo: 复制代码 代码如下: class Test { public static void main(String[] args)

  • Java 替换字符串中的回车换行符的方法

    使用正则表达式进行替换: 代码片段: String documentTxt = EntityUtils.toString(entity,"gbk");//获取数据 documentTxt=documentTxt.replaceAll("[\\t\\n\\r]", "");//将内容区域的回车换行去除 说明:String类的replaceAll就有正则替换功能. \t为制表符 \n为换行 \r为回车 java正则使用: 示例方法: 复制代码 代码如

随机推荐