1. 程式人生 > >Google Guava學習(10)-Guava字串工具CharMatcher

Google Guava學習(10)-Guava字串工具CharMatcher

1. 功能:處理字串

2. 程式碼:

package com.example.google.guava.demo.string;

import com.google.common.base.CharMatcher;

/**
 * <p>
 * <code>CharMatcherTest</code>
 * </p>
 * Description:
 *
 * @author Mcchu
 * @date 2017/10/23 12:14
 */
public class CharMatcherTest {

    public static void main(String[] args) {
        // 1.獲取字串中數字
        String str1 = "mahesh123ff87f";
        String result1 = CharMatcher.digit().retainFrom(str1);
        System.out.println("1.獲取字串中數字:"+result1);

        // 2.把多個空格替換,並去掉首位的空格
        String str2 = "     Mahesh     Parashar  ";
        String result2 = CharMatcher.whitespace().trimAndCollapseFrom(str2, ' ');
        System.out.println("2.把多個空格替換,並去掉首位的空格"+result2);

        // 3.去掉轉義字元(\t,\n,\b...)
        String str3 = " ab\tcd\nef\bg";
        String result3 = CharMatcher.javaIsoControl().removeFrom(str3);
        System.out.println("3.去掉轉義字元"+result3);

        // 4.把所有的數字用"*"代替
        String str4 = "124abc85dds";
        String result4 = CharMatcher.javaDigit().replaceFrom(str4,"*");
        System.out.println("4.替換數字:"+result4);

        // 5.獲取所有的數字和小寫字母
        String str5 = "124abc85ddsAF1HNsd";
        String result5 = CharMatcher.javaDigit().or(CharMatcher.javaLowerCase()).retainFrom(str5);
        System.out.println("5.獲取所有的數字和小寫字母:"+result5);

        // 6.獲取所有的大寫字母
        String result6 = CharMatcher.javaUpperCase().retainFrom(str5);
        System.out.println("6.獲取所有的大寫字母:"+result6);

        // 7.獲取所有單位元組長度的符號
        String str7 = ",dg,123AH中國";
        String result7 = CharMatcher.singleWidth().retainFrom(str7);
        System.out.println("7.獲取所有單位元組長度的符號:"+result7);

        // 8.獲取字母
        String str8 = "FirstName LastName +1 123 456 789 
[email protected]
#$%^&*()_+|}{:\"?><"; String result8 = CharMatcher.javaLetter().retainFrom(str8); System.out.println("8.獲取字母:"+result8); // 9.獲取字母和數字 String result9 = CharMatcher.javaLetterOrDigit().retainFrom(str8); System.out.println("9.獲取字母和數字:"+result9); // 10.出現次數統計 Integer count10 = CharMatcher.any().countIn(str8); System.out.println("10.出現次數:"+count10); // 11.數字出現次數 Integer count11 = CharMatcher.digit().countIn(str8);; System.out.println("11.數字出現次數:"+count11); // 12.獲得除大寫字母外其他所有字元 String result12 = CharMatcher.javaLowerCase().negate().retainFrom(str8); System.out.println("12.獲得除大寫字母外其他所有字元:"+result12); // CharMatcher本身提供了很多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 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 } }
3. 輸出結果:
1.獲取字串中數字:12387
2.把多個空格替換,並去掉首位的空格Mahesh Parashar
3.去掉轉義字元 abcdefg
4.替換數字:***abc**dds
5.獲取所有的數字和小寫字母:124abc85dds1sd
6.獲取所有的大寫字母:AFHN
7.獲取所有單位元組長度的符號:,dg,123AH
8.獲取字母:FirstNameLastName
9.獲取字母和數字:FirstNameLastName1123456789
10.出現次數:54
11.數字出現次數:10
12.獲得除大寫字母外其他所有字元:FN LN +1 123 456 789 [email protected]
#$%^&*()_+|}{:"?><

附錄:

參考:

相關推薦

Google Guava學習10-Guava字串工具CharMatcher

1. 功能:處理字串 2. 程式碼: package com.example.google.guava.demo.string; import com.google.common.base.CharMatcher; /** * <p> * <cod

基於Qt的OpenGL可編程管線學習10- 膨脹與腐蝕

qt opengl shader 腐蝕 膨脹 膨脹:取一個像素周圍的點,取最亮的點為當前的點顏色,為膨脹效果腐蝕:取一個像素周圍的點,取最暗的點為當前的點顏色,為腐蝕效果膨脹Fragment Shadervarying vec2 M_coord; varying vec3 M_normal

java學習10:求最接近點對問題

sta poi span exti ++ null @override over max 1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.List

verilog學習10編寫代碼遇到錯誤

makefile vcs 代碼 沒有 file 錯誤 src 現在 筆記 在學verilog期間遇到好多bug,現在才想起來記筆記,唉,我怎麽就忘了呢。。 1:第七章練習,在頂層文件中例化子模塊,vcs報錯,說子模塊沒有定義,找了半天,才發現子模塊缺少endmodule  

eclipse中搭建springboot學習10---JPA使用4多張表 ManyToOne

新增SchoolDTO package com.example.demo1025.dto; import java.io.Serializable; import java.util.List; import javax.persistence.CascadeType;

Python學習10——常用的內建模組

跳過程序執行緒 跳過正則 1、datetime:處理日期和時間的標準庫 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431937554888869fb52

docker 學習10 常用命令

ack 標準 doc ubun bash 停止 pan int hub 1 docker run -it ubuntu:15.10 /bin/bash  如果有ubuntu:15.10這個鏡像,就run,否則會從dockerhub下載,並run。 -it 一般連用,

memcached的學習10

2018.6.14 講解Memcached如何從客戶端讀取命令,並且解析命令,然後處理命令並且向客戶端迴應訊息。其中,Memcached是通過sendmsg函式向客戶端傳送資料的,這裡我們具體分析Memcached迴應訊息的技術細節。 右邊對應了響應客戶端需要準備好傳送的資料結構,值得

JAVAWEB學習10 - EL表示式和JSTL

EL表示式和JSTL 一、EL表示式 1.1. EL表示式是什麼 是一套簡單的運算規則,用於給jsp標籤的屬性賦值,也可以脫離jsp標籤,直接使用。 1.2. EL表示式的使用 1.2.1. 讀取bean的屬性值 javabean指的是一個符合如下要求的Java類:

Solidity語言學習10 —— Solidity彙編Solidity Assembly)

solidity定義一個組合語言,這個語言可以在沒有Solidity下使用。該組合語言也能在Solidity原始碼中被用作“內聯”。我們從這樣使用內聯彙編以及怎樣區分其與離線彙編開始介紹,然後接下來詳細介紹彙編。 內聯彙編(Inline Assembly) 為了更細膩的控制,尤其是通

Java語言學習字串的常見使用

    Java中字串的使用很是常見,也是不可避免的,比如:格式化、大小寫轉換等等,下面就這些常見的使用來說下字串。     在使用前,必須要理解一點:字串是不可變的物件,意味著每當呼叫字串物件的方法操作字串時,都將產生一個新的字串物件,而不是更改原來的字

REDIS 學習10流程圖解使用redis實現分散式鎖

redis作為集中式快取,可以通過它來實現分散式鎖。 首先用到的redis操作有: setnx key value:      當key不存在的時候生效並返回1,當已經有此key的時候返回0 getset key value:    

go學習9string字串函式

常用字串操作函式 型別轉換 比較對比 搜尋 查詢 統計 替換 刪除過濾 大小寫轉換 字首字尾 字串分割 拼接 中拼接字串方式對比 package main import ( "bytes" "fmt" "strconv" "strings"

WPF學習10-資源

       資源就是可以讓你在程式裡面呼叫的東西,有很多東西,比如需要多次呼叫,比如一個按鈕的樣式,每個頁面上的按鈕希望達成一個統一的風格,那麼這個時候就可以封裝成資源,然後直接呼叫這樣我們的xaml頁面就會顯得非常簡潔,比如下面這個頁面有十個按鈕。

tensorflow學習10:影象處理函式

一、影象編碼處理 眾所周知,一張RGB彩色想可以看成一個三維矩陣,矩陣中的每一個數字表示了影象上不同位置,不同顏色的亮度。但是影象在儲存時不是直接記錄這些距震中的數字,而是記錄經過壓縮編碼之後的結果,因此要將一張影象還原成一個三維矩陣,需要解碼。tensorflow提供了對JPEG和PN

go學習10併發讀寫訪問map問題

Golang 裡面 map 不是併發安全的,這一點是眾所周知的,而且官方文件也很早就給瞭解釋:Why are map operations not defined to be atomic?. 也正如這個解釋說的一樣,要實現一個併發安全的 map 其實非常簡單。 併發安全 實際上,大多數情況

JAVAWEB學習10

EL表示式和JSTL 一、EL表示式 1.1. EL表示式是什麼 是一套簡單的運算規則,用於給jsp標籤的屬性賦值,也可以脫離jsp標籤,直接使用。 1.2. EL表示式的使用 1.2.1. 讀取bean的屬性值 javabean指的是一個符合如下要求的Java

Pytorch 學習10:Python Cython擴充套件python pyx程式碼-----C 程式碼 ----python程式碼呼叫

 Cython是具有C資料型別的Python,幾乎任何一個Python程式碼都是有效的Cython程式碼。Cython編譯器將把python程式碼轉換成C程式碼,對Python/C API進行等效呼叫。  python程式碼------>C 程式碼 -------&g

Shiro學習10Session管理

Shiro提供了完整的企業級會話管理功能,不依賴於底層容器(如web容器tomcat),不管JavaSE還是JavaEE環境都可以使用,提供了會話管理、會話事件監聽、會話儲存/持久化、容器無關的叢集、失效/過期支援、對Web的透明支援、SSO單點登入的支援等特性

Java虛擬機器學習10:類載入器(ClassLoader)

類載入器 類載入器(ClassLoader)用來載入 class位元組碼到 Java 虛擬機器中。一般來說,Java 虛擬機器使用 Java 類的方式如下:Java 原始檔在經過 Javac之後就被轉換成 Java 位元組碼檔案(.class 檔案)。類載入器負責讀