JavaRush /Java Blog /Random-TW /在 Java 8 中你可以連接字串
theGrass
等級 24
Саратов

在 Java 8 中你可以連接字串

在 Random-TW 群組發布
我確信您曾經遇到過想要連接多行的情況。如果您不是用 Java 編寫的,那麼您可能使用了join()程式語言本身提供的功能。如果你用 Java 寫,你就無法做到這一點,原因很簡單──這個方法不存在。Java 中的標準類別程式庫為您提供了建立 GUI 應用程式、存取資料庫、透過網路傳送資料、執行 XML 轉換或從第三方程式庫呼叫方法的工具。未包含連接字串集合的簡單方法。為此,您需要眾多第三方程式庫之一。 在 Java 8 中,您可以連接字串 - 1幸運的是,這件事已經結束了!在 Java 8 中我們終於可以連接字串了!Java 8 新增了一個名為 的新類別StringJoiner。顧名思義,我們可以使用此類來連接字串:
StringJoiner joiner = new StringJoiner(",");
joiner.add("foo");
joiner.add("bar");
joiner.add("baz");
String joined = joiner.toString(); // "foo,bar,baz"

// add() calls can be chained
joined = new StringJoiner("-")
.add("foo")
.add("bar")
.add("baz")
.toString(); // "foo-bar-baz"
String使用兩個新的靜態方法join() StringJoiner
// join(CharSequence delimiter, CharSequence... elements)
String joined = String.join("/", "2014", "10", "28" ); // "2014/10/28"

// join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
List<String> list = Arrays.asList("foo", "bar", "baz");
joined = String.join(";", list); // «foo;bar;baz"
Collector此外,對於連接字串,新 API 中 有一個使用流的特殊字串:
List<Person> list = Arrays.asList(
 new Person("John", "Smith"),
 new Person("Anna", "Martinez"),
 new Person("Paul", "Watson ")
);

String joinedFirstNames = list.stream()
 .map(Person::getFirstName)
 .collect(Collectors.joining(", ")); // "John, Anna, Paul»
這樣我們就真的不再需要第三方函式庫來連接字串了! 來源文章
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION