Guava--アプリケーション(1)文字列操作-スプリッター、ジョイナー、文字列、オブジェクト

guava -docs:guavaApi

目次

guava-docs:guavaApi

スプリッター:スプリッター

       1.スプリッターを構築します。

       2.スプリッターは最終変更で不変です

       3.アプリケーションを分割します

       4.スプリッターはフィルター基準を追加します

ジョイナー:コネクター

  文字列:

オブジェクト:


 

スプリッター:スプリッター

       1.スプリッターを構築します。

                  Splitter.on(String str):spliter.on( ";")

                   Splitter.onPattern():通常に基づいて分割を構築します

                   Splitter.fixedLength(int):固定長

       2.スプリッターは最終変更で不変です

public final class Splitter extends Object

       3.アプリケーションを分割します

     Iterable <String> split1 = splitByComma.split( "aa、bb、cc");

      System.out.println(split1); //【aa、bb、cc】

splitメソッドはiterableを返し、パラメーターをnullにすることはできません(Preconditions.checkNotNull(sequence);)

       4.スプリッターはフィルター基準を追加します

  制限:

//         limit ,拆分到指定的数量后,不再拆分,余下的归为一起
        Iterable<String> split2 = splitByComma.limit(3).split("aa,bb,cc,dd,ee");
        System.out.println(split2);  //[aa, bb, cc,dd,ee] 拆分为三个元素,最后一个是cc,dd,ee
OmitEmptyStrings:
//空の文字列に遭遇すると、omitEmptyStringsがジャンプします
// splitToListはIterableを返しますが、役に立たない場合があります。リストに直接戻ることができます
        splitByComma
                .omitEmptyStrings()
                .splitToList( "aa ,, bb ,, cc")
                。ストリーム()
                .forEach(System.out :: print); // aa bb cc

trimResults:

//        trimResults: 去除首尾空格, 也可以传入参数CharMatcher指定默认是空格
        splitByComma
//                .trimResults()
                .trimResults(CharMatcher.isNot('a')) // 去除不匹配a的
                .splitToList("   ab , c , d  ,aa  ")
                .stream()
                .forEach(System.out::print);

  charMatcher:特定のリファレンス https://blog.csdn.net/victor_cindy1/article/details/52073155

withKeyValueSeparator:

// kvフォームを分割し、マップを返します
//文字列をカンマで分割し、withKeyValueSeparatorはkvをハッシュで分割します
        Map <String、String> splitMap = Splitter.on( "、")
                .withKeyValueSeparator( "#")// MapSplitterを返し、文字列をkvに分割します
                .split( "123#123、!1243#ee"); // {123 = 123、!1243 = ee}

//        固定长度拆分
        Splitter splitByfixedLength = Splitter.fixedLength(4);
        List<String> abc = splitByfixedLength.splitToList("aaaabbbbcccc");
        System.out.println(abc);  //[aaaa, bbbb, cccc]

 

ジョイナー:コネクター

  1.ビルド時

      ジョイナーjoiner = Joiner.on( "-");

  2.skipNullsはnullをスキップします

     useForNull(string default)nullが発生したときにデフォルト値を使用する

        文字列結合=ジョイナ
                .skipNulls()// nullをスキップ
// .useForNull( "default")// nullが発生した場合は、代わりにデフォルト値を使用します。skipNullでは使用できません
                .join(Lists.newArrayList(1、2、3、null、4、5、6)); // 1-2-3-4-5-6

  3. withKeyValueSeparator

//      连接 map中的key value
        String join1 = joiner.withKeyValueSeparator("->")
                .join(ImmutableMap.of("A", "a", "B", "b"));
        System.out.println(join1); //A->a-B->b

  文字列:

 

//        guava中的工具类大量适用  Preconditions.checkNotNull(a); 所有传入null会空指针
        System.out.println(
                // 公共前缀
                Strings.commonPrefix("aaa","abc")
        );
        System.out.println(
//                公共后缀
                Strings.commonSuffix("bcd","csa")
        );
        System.out.println(
//                空字符串转为null
                Strings.emptyToNull("")
        );
        System.out.println(
//                判断是null还是空字符串
                Strings.isNullOrEmpty(null)
        );
        System.out.println(
//                null转空字符串
                Strings.nullToEmpty(null)
        );
        System.out.println(
                Strings.lenientFormat("aaa","c","b") //aaa [c, b]
        );
        System.out.println(
//               返回一个最小长度为5,以参数123为基准,不足的使用 c补充,
//                如果最小长度设置的小于基准123的长度,则返回123
                Strings.padEnd("123",5,'c')
        );
        System.out.println(
                Strings.padStart("777",6,'0')
        );
//        复制多分
        Strings.repeat("aaa",3);//aaaaaaaaa

オブジェクト:

  最も一般的に使用されるのはequal()メソッドです

com.google.common.base.Objects.equal( "aa"、null);

使用するjdkバージョンがjava8より前の場合は、java8が提供するオブジェクトを使用するのが最適であり、多くのメソッドが提供されています。

 

 

おすすめ

転載: blog.csdn.net/xiaodujava/article/details/98986226