官术网_书友最值得收藏!

3.6 Java 11新特性:新增的String函數(shù)

在新發(fā)布的JDK 11中,新增了6個(gè)字符串函數(shù)。下面介紹各個(gè)字符串函數(shù)。

知識(shí)點(diǎn)講解:

? String.repeat(int)

函數(shù)String.repeat(int)的功能是根據(jù)int參數(shù)的值重復(fù)String。

? String.lines()

函數(shù)String.lines()的功能是返回從該字符串中提取的行,由行終止符分隔。行要么是零個(gè)或多個(gè)字符的序列,后面跟著一個(gè)行結(jié)束符;要么是一個(gè)或多個(gè)字符的序列,后面是字符串的結(jié)尾。一行不包括行終止符。在Java程序中,使用函數(shù)String.lines()返回的流包含該字符串中出現(xiàn)的行的順序。

? String.strip()

函數(shù)String.strip()的功能是返回一個(gè)字符串,該字符串的值為該字符串,其中所有前導(dǎo)和尾部空白均被刪除。如果該String對(duì)象表示空字符串,或者如果該字符串中的所有代碼點(diǎn)是空白的,則返回一個(gè)空字符串。否則,返回該字符串的子字符串,該字符串從第一個(gè)不是空白的代碼點(diǎn)開始,直到最后一個(gè)不是空白的代碼點(diǎn),并包括最后一個(gè)不是空白的代碼點(diǎn)。在Java程序中,開發(fā)者可以使用此函數(shù)去除字符串開頭和結(jié)尾的空白。

? String.stripLeading()

函數(shù)String.stripLeading()的功能是返回一個(gè)字符串,其值為該字符串,并且刪除字符串前面的所有空白。如果該String對(duì)象表示空字符串,或者如果該字符串中的所有代碼點(diǎn)是空白的,則返回空字符串。

? String.stripTrailing()

函數(shù)String.stripTrailing()的功能是返回一個(gè)字符串,其值為該字符串,并且刪除字符串后面的所有空白。如果該String對(duì)象表示空字符串,或者如果該字符串中的所有代碼點(diǎn)是空白的,則返回空字符串。

? String.isBlank()

函數(shù)String.isBlank()的功能是判斷字符串是否為空或僅包含空格。如果字符串為空或僅包含空格則返回true;否則,返回false。

下面的實(shí)例演示了使用上述Java 11新增字符串函數(shù)的過程。

實(shí)例3-24

使用Java 11新增字符串函數(shù)

源碼路徑:daima\3\Example.java

實(shí)例文件Example.java的主要實(shí)現(xiàn)代碼如下所示。

        import java.util.stream.Collectors;


        public class Example {


            /**


                      * 寫入文本標(biāo)題
              */
            private static void writeHeader(final String headerText) {
                  final String headerSeparator = "=".repeat(headerText.length() + 4);
                  System.out.println("\n" + headerSeparator);
                  System.out.println(headerText);
                  System.out.println(headerSeparator);
            }


            public static void demonstrateStringLines() {
                  String originalString = "Hello\nWorld\n123";


                  String stringWithoutLineSeparators = originalString.replaceAll("\\n", "\\\\n");


                  writeHeader("String.lines() on '" + stringWithoutLineSeparators + "'");


                  originalString.lines();
            }


            public static void demonstrateStringStrip() {
                  String originalString = "  biezhi.me  23333  ";
              writeHeader("String.strip() on '" + originalString + "'");
              System.out.println("'" + originalString.strip() + "'");
        }


        public static void demonstrateStringStripLeading() {
              String originalString = "  biezhi.me  23333  ";
              writeHeader("String.stripLeading() on '" + originalString + "'");
              System.out.println("'" + originalString.stripLeading() + "'");
        }


        public static void demonstrateStringStripTrailing() {
              String originalString = "  biezhi.me  23333  ";


              writeHeader("String.stripTrailing() on '" + originalString + "'");
              System.out.println("'" + originalString.stripTrailing() + "'");
        }


        public static void demonstrateStringIsBlank() {
              writeHeader("String.isBlank()");


              String emptyString = "";
              System.out.println("空字符串     -> " + emptyString.isBlank());


              String onlyLineSeparator = System.getProperty("line.separator");
              System.out.println("換行符      -> " + onlyLineSeparator.isBlank());


              String tabOnly = "\t";
              System.out.println("Tab 制表符 -> " + tabOnly.isBlank());


              String spacesOnly = "    ";
              System.out.println("空格        -> " + spacesOnly.isBlank());
        }


        public static void lines() {
              writeHeader("String.lines()");


              String str = "Hello \n World, I, m\nbiezhi.";


              System.out.println(str.lines().collect(Collectors.toList()));
        }


        public static void main(String[] args) {
              writeHeader("User-Agent\tMozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5)");
              demonstrateStringLines();
              demonstrateStringStrip();
              demonstrateStringStripLeading();
              demonstrateStringStripTrailing();
              demonstrateStringIsBlank();
              lines();
        }
    }

執(zhí)行后會(huì)輸出:

    ==============================================================
    User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5)
    ==============================================================


    =========================================
    String.lines() on 'Hello\nWorld\n123'
    =========================================


    ============================================
    String.strip() on '  biezhi.me  23333  '
    ============================================
    'biezhi.me  23333'


    ===================================================
    String.stripLeading() on '  biezhi.me  23333  '
        ===================================================
        'biezhi.me  23333  '


        ====================================================
        String.stripTrailing() on '  biezhi.me  23333  '
        ====================================================
        '  biezhi.me  23333'


        ====================
        String.isBlank()
        ====================
        空字符串     -> true
        換行符      -> true
        Tab 制表符 -> true
        空格        -> true


        ==================
        String.lines()
        ==================
        [Hello ,  World, I, m, biezhi.]
主站蜘蛛池模板: 和静县| 塔城市| 广河县| 微博| 开远市| 松潘县| 盖州市| 驻马店市| 额济纳旗| 调兵山市| 炎陵县| 温州市| 安义县| 江源县| 武山县| 六枝特区| 酒泉市| 横峰县| 通州市| 昌都县| 鹿邑县| 监利县| 临漳县| 习水县| 枝江市| 民丰县| 郧西县| 胶州市| 诸暨市| 张家口市| 金溪县| 阿尔山市| 玛纳斯县| 南昌县| 罗田县| 尉犁县| 天峨县| 福建省| 和林格尔县| 延庆县| 锦州市|