<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 用 Java8 的`StringJoiner`連接字符串 原文:http://zetcode.com/articles/java8stringjoiner/ 在本文中,我們介紹了用于連接字符串的新 Java8 API。 Java 多年來缺乏用于簡單字符串連接的 API。 在 Java8 中,引入了`StringJoiner`。 `StringJoiner`用于構造由定界符分隔的字符序列,并可選地以提供的前綴開始并以提供的后綴結束。 `StringJoiner`也由`String`類的`join()`方法在內部使用。 ## 使用`StringJoiner` 下面的示例將數字與`StringJoiner`類相連。 `Java8StringJoinEx.java` ```java package com.zetcode; import java.util.StringJoiner; public class Java8StringJoinEx { public static void main(String[] args) { StringJoiner join = new StringJoiner(","); join.add("1"); join.add("2"); join.add("3"); join.add("4"); join.add("5"); System.out.println(join); } } ``` 該示例連接了五個數字,并將最終字符串輸出到控制臺。 ```java StringJoiner join = new StringJoiner(","); ``` 將創建`StringJoiner`類的新實例。 逗號字符用作分隔符。 ```java join.add("1"); join.add("2"); join.add("3"); join.add("4"); join.add("5"); ``` `add()`方法添加了五個值。 ```java System.out.println(join); ``` `StringJoiner`轉換為字符串并打印到控制臺。 ```java $ java com.zetcode.Java8StringJoinEx 1,2,3,4,5 ``` 這是示例的輸出。 ## `String.join()`方法 在第二個示例中,我們使用`String.join()`方法連接字符串。 `Java8StringJoinEx2.java` ```java package com.zetcode; public class Java8StringJoinEx2 { public static void main(String[] args) { String join = String.join("/", "2016", "8", "5"); System.out.println(join); } } ``` `String.join()`方法在內部使用`StringJoiner`。 ```java String join = String.join("/", "2016", "8", "5"); ``` 日期與`String.join()`方法連接在一起。 ```java $ java com.zetcode.Java8StringJoinEx2 2016/8/5 ``` This is the output of the example. ## 連接列表 第三個示例連接列表的元素。 `Java8StringJoinEx3.java` ```java package com.zetcode; import java.util.Arrays; import java.util.List; public class Java8StringJoinEx3 { public static void main(String[] args) { List<String> list = Arrays.asList("Today", "is", "a", "beautiful", "day"); String joined = String.join(" ", list); System.out.println(joined); } } ``` 可以將列表作為參數傳遞給`String.join()`方法。 ```java String joined = String.join(" ", list); ``` 列表中的元素以單個空格字符連接。 ```java $ java com.zetcode.Java8StringJoinEx3 Today is a beautiful day ``` 列表中的元素被連接起來以創建一個句子。 ## 讀取 CSV 文件 以下示例從 CSV 文件中讀取數字,然后將其與`StringJoiner`結合在一起。 我們使用 Gradle 構建工具構建示例。 ```java $ tree . ├── build.gradle └── src └── main ├── java │ └── com │ └── zetcode │ └── Java8StringJoinEx4.java └── resources └── numbers.csv 6 directories, 3 files ``` 該示例具有他的項目結構。 我們將要讀取的數字位于`resources`目錄中。 `build.gradle` ```java version '1.0' apply plugin: 'java' apply plugin: 'application' sourceCompatibility = 1.8 mainClassName = "com.zetcode.Java8StringJoinEx4" ``` 這是 Gradle 構建文件。 `numbers.csv` ```java 13,24,35,16,50 ``` 這是`numbers.csv`文件。 `Java8StringJoinEx4.java` ```java package com.zetcode; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import java.util.StringJoiner; public class Java8StringJoinEx4 { public static void main(String[] args) throws FileNotFoundException { Scanner scanner = new Scanner(new File("src/main/resources/numbers.csv")); scanner.useDelimiter(","); StringJoiner join = new StringJoiner("|"); while (scanner.hasNext()) { join.add(scanner.next()); } scanner.close(); System.out.println(join); } } ``` 該示例讀取包含數字的 CSV 文件,并使用其他定界符將它們與`StringJoiner`結合在一起。 ```java Scanner scanner = new Scanner(new File("src/main/resources/numbers.csv")); scanner.useDelimiter(","); ``` 使用`Scanner`類讀取值。 數字之間用逗號分隔,因此我們使用`useDelimiter()`方法設置逗號分隔符。 ```java StringJoiner join = new StringJoiner("|"); ``` `StringJoiner`類用`"|"`定界符實例化。 ```java while (scanner.hasNext()) { join.add(scanner.next()); } ``` 我們使用掃描器檢索值并將其與連接器連接。 ```java $ gradle build :compileJava :processResources :classes :jar :startScripts :distTar :distZip :assemble :compileTestJava UP-TO-DATE :processTestResources UP-TO-DATE :testClasses UP-TO-DATE :test UP-TO-DATE :check UP-TO-DATE :build BUILD SUCCESSFUL ``` 我們使用`gradle build`命令構建項目。 ```java $ gradle run :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :run 13|24|35|16|50 ``` 我們使用`gradle run`命令運行該應用。 最后一行是我們應用的輸出。 ## 編寫 CSV 文件 下一個示例將數字寫入 CSV 文件。 ```java $ tree . ├── build.gradle └── src └── main └── java └── com └── zetcode └── Java8StringJoinEx5.java ``` 該示例具有他的項目結構。 我們將在當前工作目錄中創建一個新文件。 `build.gradle` ```java version '1.0' apply plugin: 'java' apply plugin: 'application' sourceCompatibility = 1.8 mainClassName = "com.zetcode.Java8StringJoinEx5" ``` This is the Gradle build file. `Java8StringJoinEx5.java` ```java package com.zetcode; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; import java.util.StringJoiner; public class Java8StringJoinEx5 { public static void main(String[] args) throws FileNotFoundException, IOException { StringJoiner join = new StringJoiner(","); join.add("21"); join.add("43"); join.add("54"); join.add("76"); join.add("98"); File newFile = new File("numbers2.csv"); newFile.createNewFile(); PrintWriter pw = new PrintWriter(newFile); pw.write(join.toString()); pw.close(); } } ``` 該示例將五個數字與`StringJoiner`結合在一起,然后將所包含的字符串寫入 CSV 文件。 ```java StringJoiner join = new StringJoiner(","); join.add("21"); join.add("43"); join.add("54"); join.add("76"); join.add("98"); ``` 五個數字與`StringJoiner`連接在一起。 數字用逗號分隔。 ```java File newFile = new File("numbers.csv"); newFile.createNewFile(); ``` 在當前工作目錄中創建一個新的文件對象。 ```java File newFile = new File("numbers.csv"); newFile.createNewFile(); ``` A new file object is created in the current working directory. ```java PrintWriter pw = new PrintWriter(newFile); pw.write(join.toString()); pw.close(); ``` 合并的值將寫入文件。 ```java $ gradle build run ``` 我們構建并運行該應用。 ```java $ cat numbers2.csv 21,43,54,76,98 ``` 我們顯示創建文件的內容。 ## `Collectors.joining()` Java8 還在新的流 API 中引入了`Collectors.joining()`方法。 該方法返回一個`Collector`,它按遇到順序連接由指定定界符分隔的輸入元素。 `Java8CollectorJoiningEx.java` ```java package com.zetcode; import java.util.stream.Collectors; import java.util.stream.Stream; public class Java8CollectorJoiningEx { public static void main(String[] args) { Stream<String> stream = Stream.of("Jan", "Peter", "Robert"); String names = stream.collect(Collectors.joining(" ")); System.out.println(names); } } ``` 該示例使用流 API 連接三個名稱。 ```java $ java com.zetcode.Java8CollectorJoiningEx Jan Peter Robert ``` This is the output of the example. 在本文中,我們使用了 Java8 中引入的新類`StringJoiner`。我們還添加了一個小示例,顯示了來自流 API 的新`Collectors.joining()`。 您可能也對以下相關教程感興趣: [Java 教程](/lang/java/), [Java8 `forEach`教程](/articles/java8foreach/),[Google Guava 簡介](/articles/guava/),[在 Java 中過濾列表](/articles/javafilterlist/)或 [Android 教程](/mob/android/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看