Saya pasti anda pernah berada dalam situasi di mana anda ingin menggabungkan berbilang baris. Jika anda tidak menulis dalam Java, maka anda mungkin menggunakan fungsi
join()
yang disediakan kepada anda oleh bahasa pengaturcaraan itu sendiri. Jika anda menulis dalam Java, anda tidak boleh melakukan ini atas sebab yang mudah - kaedah ini tidak wujud. Pustaka kelas standard di Java memberi anda alat untuk mencipta aplikasi GUI, untuk mengakses pangkalan data, untuk menghantar data melalui rangkaian, untuk melakukan transformasi XML, atau untuk memanggil kaedah daripada perpustakaan pihak ketiga. Kaedah mudah untuk menggabungkan koleksi rentetan tidak disertakan. Untuk melakukan ini, anda memerlukan salah satu daripada banyak perpustakaan pihak ketiga. Nasib baik, ini telah sampai ke penghujungnya! Dalam Java 8 akhirnya kita boleh menggabungkan rentetan! Java 8 menambah kelas baharu yang dipanggil StringJoiner
. Seperti namanya, kita boleh menggunakan kelas ini untuk menggabungkan rentetan:
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
menggunakan dua kaedah statik baharu 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"
Juga, untuk menggabungkan rentetan terdapat yang istimewa Collector
dalam API baharu menggunakan aliran:
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»
Dengan cara ini kita benar-benar tidak memerlukan perpustakaan pihak ketiga untuk menggabungkan rentetan lagi! Artikel asal
GO TO FULL VERSION