JavaRush /Blog Java /Random-MS /Dalam Java 8 anda boleh menggabungkan rentetan
theGrass
Tahap
Саратов

Dalam Java 8 anda boleh menggabungkan rentetan

Diterbitkan dalam kumpulan
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. Dalam Java 8 anda boleh menggabungkan rentetan - 1Nasib 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"
Stringmenggunakan 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 Collectordalam 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
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION