- Java 開發(fā)從入門到精通(第2版)
- 扶松柏 王洋 陳小玉
- 961字
- 2020-04-14 15:06:05
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.]
- 現(xiàn)代C++編程:從入門到實(shí)踐
- JBoss Weld CDI for Java Platform
- Mastering AWS Lambda
- Docker and Kubernetes for Java Developers
- C語言程序設(shè)計(jì)立體化案例教程
- Raspberry Pi 2 Server Essentials
- 零基礎(chǔ)學(xué)MQL:基于EA的自動(dòng)化交易編程
- Oracle Database 12c Security Cookbook
- 基于Swift語言的iOS App 商業(yè)實(shí)戰(zhàn)教程
- 嚴(yán)密系統(tǒng)設(shè)計(jì):方法、趨勢(shì)與挑戰(zhàn)
- Learning YARN
- JavaScript應(yīng)用開發(fā)實(shí)踐指南
- Magento 2 Beginners Guide
- Scratch從入門到精通
- 數(shù)據(jù)結(jié)構(gòu):Python語言描述