Guava String
Guava String
山东和湖北 发表于2年前
Guava String
  • 发表于 2年前
  • 阅读 11
  • 收藏 0
  • 点赞 2
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: Guava String
package GuavaString;

import com.google.common.base.*;
import com.google.common.collect.Lists;
import org.apache.commons.lang.CharSet;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by ZhaoYun on 2016/5/11.
 * 字符串的处理 分割 连接  填充
 */
public class GuavaString {

    private static final Joiner joiner = Joiner.on(",").skipNulls();//skipNulls 这样可以过滤null值  否则遇到null时会报 NullPointerException

    private static final Splitter spl = Splitter.on(",").omitEmptyStrings().trimResults().limit(10);//按单个字符串拆分 omitEmptyStrings会忽略空字符串
    // trimResults移除结果字符串的前后空白  limit 限制分割的数量


    public static void main(String[] args){

        //String 连接器 Joiner
        String[] strings = new String[]{"a","b","c","d",null};
        String afterJoin = joiner.join(strings);
        System.out.println("String[] : " + afterJoin);// System.out.println的快捷键:sout 然后按tab 建

        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("");
        list.add("c");
        System.out.println("list :" + joiner.join(list));

        //String 拆分器 Splitter
        list = Lists.newArrayList(spl.split(afterJoin));
        for(String str : list){
            System.out.println(str);
        }

        //String 匹配器 CharMatcher
        String string = "0123456789SuccessControl";
        string = CharMatcher.JAVA_ISO_CONTROL.removeFrom(string); //移除control
        string = CharMatcher.DIGIT.retainFrom(string);//只保留数字
        string = CharMatcher.DIGIT.retainFrom(string);//获取所有的数字
        string = CharMatcher.WHITESPACE.trimAndCollapseFrom(string, ' ');//去除两端的空格;并把中间的连续空格替换成单个空格
        string = CharMatcher.JAVA_DIGIT.replaceFrom(string, "*");//用*号替换所有数字
        string = CharMatcher.JAVA_DIGIT.or(CharMatcher.JAVA_LOWER_CASE).retainFrom(string);// 只保留数字和小写字母
        string = CharMatcher.JAVA_UPPER_CASE.retainFrom(string);//获取所有的大写字母
        string = CharMatcher.SINGLE_WIDTH.retainFrom(string);//获取所有单字节长度的符号
        System.out.println(string);

        // Charsets 字符集 提供六种字符集常量引用

        // CaseFormat 大小写转换器
    }

}
匹配器CharMatcher实现类
    ANY: 匹配任何字符
    ASCII: 匹配是否是ASCII字符
    BREAKING_WHITESPACE: 匹配所有可换行的空白字符(不包括非换行空白字符,例如"\u00a0")
    DIGIT: 匹配ASCII数字
    INVISIBLE: 匹配所有看不见的字符
    JAVA_DIGIT: 匹配UNICODE数字, 使用 Character.isDigit() 实现
    JAVA_ISO_CONTROL: 匹配ISO控制字符, 使用 Charater.isISOControl() 实现
    JAVA_LETTER: 匹配字母, 使用 Charater.isLetter() 实现
    JAVA_LETTER_OR_DIGET: 匹配数字或字母
    JAVA_LOWER_CASE: 匹配小写
    JAVA_UPPER_CASE: 匹配大写
    NONE: 不匹配所有字符
    SINGLE_WIDTH: 匹配单字宽字符, 如中文字就是双字宽
    WHITESPACE: 匹配所有空白字符

匹配器CharMatcher常用方法:
    CharMatcher is(char match): 返回匹配指定字符的Matcher
    CharMatcher isNot(char match): 返回不匹配指定字符的Matcher
    CharMatcher anyOf(CharSequence sequence): 返回匹配sequence中任意字符的Matcher
    CharMatcher noneOf(CharSequence sequence): 返回不匹配sequence中任何一个字符的Matcher
    CharMatcher inRange(char startInclusive, char endIncludesive): 返回匹配范围内任意字符的Matcher
    CharMatcher forPredicate(Predicate<? super Charater> predicate): 返回使用predicate的apply()判断匹配的Matcher
    CharMatcher negate(): 返回以当前Matcher判断规则相反的Matcher
    CharMatcher and(CharMatcher other): 返回与other匹配条件组合做与来判断的Matcher
    CharMatcher or(CharMatcher other): 返回与other匹配条件组合做或来判断的Matcher
    boolean matchesAnyOf(CharSequence sequence): 只要sequence中有任意字符能匹配Matcher,返回true
    boolean matchesAllOf(CharSequence sequence): sequence中所有字符都能匹配Matcher,返回true
    boolean matchesNoneOf(CharSequence sequence): sequence中所有字符都不能匹配Matcher,返回true
    int indexIn(CharSequence sequence): 返回sequence中匹配到的第一个字符的坐标
    int indexIn(CharSequence sequence, int start): 返回从start开始,在sequence中匹配到的第一个字符的坐标
    int lastIndexIn(CharSequence sequence): 返回sequence中最后一次匹配到的字符的坐标
    int countIn(CharSequence sequence): 返回sequence中匹配到的字符计数
    String removeFrom(CharSequence sequence): 删除sequence中匹配到到的字符并返回
    String retainFrom(CharSequence sequence): 保留sequence中匹配到的字符并返回
    String replaceFrom(CharSequence sequence, char replacement): 替换sequence中匹配到的字符并返回
    String trimFrom(CharSequence sequence): 删除首尾匹配到的字符并返回
    String trimLeadingFrom(CharSequence sequence): 删除首部匹配到的字符
    String trimTrailingFrom(CharSequence sequence): 删除尾部匹配到的字符
    String collapseFrom(CharSequence sequence, char replacement): 将匹配到的组(连续匹配的字符)替换成replacement
    String trimAndCollapseFrom(CharSequence sequence, char replacement): 先trim在replace

*/
标签: Guava String
共有 人打赏支持
粉丝 0
博文 5
码字总数 4761
×
山东和湖北
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: