Guava学习——字符串工具

时间:2021-06-16 20:48:47

Guava提供的字符串工具
Joiner:加入对象,字符串
Spilter:程序用来分割字符串
CharMatcher:字符操作
CaseFormat:用于改变字符串格式

Joiner

处理字符串加入操作,对象

//类的声明
@GwtCompatible
public class Joiner
extends Object

几个好用方法

//返回一个加入者其连续元素之间自动地分隔符
static Joiner on(String separator/char separator)

//返回一个包含每个参数的字符串表示,使用每个之间先前配置的分隔符的字符串。
String join(Object first, Object second, Object... rest)

//每个追加部分的字符串表示,使用每个之间先前配置的分离器,为构建者
StringBuilder appendTo(StringBuilder builder, Iterable<?> parts)

//返回一个相同的行为,因为这加入者,除了自动跳过任何提供空元素的加入者。
Joiner skipNulls()

**//返回一个相同的行为,因为这一个加入者,除了自动替换nullText任何提供null元素
Joiner useForNull(String nullText)**//如果有老哥看明白了留个言没测试

测试

package guavaDome;

import java.util.Arrays;

import com.google.common.base.Joiner;

public class JoinerDome {

public static void main(String args[]){
JoinerDome tester = new JoinerDome();
tester.testJoiner();
}

//跳过null
private void testJoiner(){
System.out.println(Joiner.on(",")
.skipNulls()
.join(Arrays.asList(1,2,3,4,5,null,6)));
}

}

测试结果

1,2,3,4,5,6

Splitter

Splitter 提供了各种方法来处理分割操作字符串,对象等

//类的声明
@GwtCompatible(emulated=true)
public final class Splitter
extends Object

几个好用的方法

//返回使用给定的单字符分离器分离器
static Splitter on(char separator)
//返回分离器的考虑任何序列匹配一个给定模式(正则表达式)是一个分隔符
static Splitter onPattern(String separatorPattern)
//返回分离器的行为等同于该分离器,但会自动删除开头和结尾的空白,从每个返回子;相当于trimResults(CharMatcher.WHITESPACE).

Splitter trimResults()

测试

package guavaDome;

import com.google.common.base.Splitter;

public class SplitterDome {

public static void main(String args[]) {
SplitterDome tester = new SplitterDome();
tester.testSplitter();
}

private void testSplitter() {
System.out.println(Splitter.on(',').trimResults().omitEmptyStrings()
.split("the ,quick, , brown , fox, jumps, over, the, lazy, little dog."));
}

}

测试结果

[the, quick, brown, fox, jumps, over, the, lazy, little dog.]

CharMatcher

CharMatcher提供了各种方法来处理各种JAVA char类型值

//类的声明
@GwtCompatible(emulated=true)
public final class CharMatcher
extends Object```

字段
S.N. 字段及说明
1 static CharMatcher ANY
匹配任意字符。
2 static CharMatcher ASCII
确定字符是否为ASCII码,这意味着它的代码点低于128。
3 static CharMatcher BREAKING_WHITESPACE
确定一个字符是否是一个破空白(即,一个空格可以解释为格式目的词之间休息)。
4 static CharMatcher DIGIT
确定一个字符是否是根据Unicode数字。
5 static CharMatcher INVISIBLE
确定一个字符是否是看不见的;
也就是说,如果它的Unicode类是任何SPACE_SEPARATOR,LINE_SEPARATOR,PARAGRAPH_SEPARATOR,控制,FORMAT,SURROGATE和PRIVATE_USE根据ICU4J。
6 static CharMatcher JAVA_DIGIT
确定一个字符是否是按照Java的定义一个数字。
7 static CharMatcher JAVA_ISO_CONTROL
确定一个字符是否是所指定的Character.isISOControl(char)ISO控制字符。
8 static CharMatcher JAVA_LETTER
确定一个字符是否是按照Java的定义的字母。
9 static CharMatcher JAVA_LETTER_OR_DIGIT
确定一个字符是否是按照Java的定义,一个字母或数字。
10 static CharMatcher JAVA_LOWER_CASE
确定一个字符是否是按照Java定义的小写。
11 static CharMatcher JAVA_UPPER_CASE
确定一个字符是否是按照Java定义的大写。
12 static CharMatcher NONE
匹配任何字符。
13 static CharMatcher SINGLE_WIDTH
确定一个字符是否是单宽度(不是双倍宽度)。
14 static CharMatcher WHITESPACE
决定根据最新的Unicode标准是否字符是空白,如图所示这里。

测试

package guavaDome;

import com.google.common.base.CharMatcher;

public class CharMatcherDome {
public static void main(String args[]){
CharMatcherDome tester = new CharMatcherDome();
tester.testCharMatcher();
}

   private void testCharMatcher(){
System.out.println(CharMatcher.DIGIT.retainFrom("mahesh123")); // only the digits
System.out.println(CharMatcher.WHITESPACE.trimAndCollapseFrom(" Mahesh Parashar ", ' '));
// trim whitespace at ends, and replace/collapse whitespace into single spaces
System.out.println(CharMatcher.JAVA_DIGIT.replaceFrom("mahesh123", "*")); // star out all digits
System.out.println(CharMatcher.JAVA_DIGIT.or(CharMatcher.JAVA_LOWER_CASE).retainFrom("mahesh123"));
// eliminate all characters that aren't digits or lowercase
}

}


测试结果

123
Mahesh Parashar
mahesh***
mahesh123


##caseFormat##


CaseFormat是一种实用工具类,以提供不同的ASCII字符格式之间的转换

//类的声明
@GwtCompatible
public enum CaseFormat
extends Enum


字段
S.N. 枚举常量和说明
1 LOWER_CAMEL
Java变量的命名规则,如“lowerCamel”。
2 LOWER_HYPHEN
连字符连接变量的命名规则,如“lower-hyphen”。
3 LOWER_UNDERSCORE
C ++变量命名规则,如“lower_underscore”。
4 UPPER_CAMEL
Java和C++类的命名规则,如“UpperCamel”。
5 UPPER_UNDERSCORE
Java和C++常量的命名规则,如“UPPER_UNDERSCORE”。

方法

//返回一个转换,从这个格式转换targetFormat字符串。
Converter


测试

package guavaDome;

import com.google.common.base.CaseFormat;

public class CaseFormatDome {
public static void main(String args[]) {
CaseFormatDome tester = new CaseFormatDome();
tester.testCaseFormat();
}

private void testCaseFormat() {
String data = "test_data";
System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data"));
System.out.println(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data"));`这里写代码片`
System.out.println(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "test_data"));
}

}

“`
testData
testData
TestData