您的位置:首页 > 其它

Guava学习——字符串工具

2017-10-23 20:55 337 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: