Ishonchim komilki, siz bir nechta satrlarni birlashtirmoqchi bo'lgan vaziyatda bo'lgansiz. Agar siz Java-da yozmagan bo'lsangiz, ehtimol siz
join()
dasturlash tilining o'zi tomonidan taqdim etilgan funksiyadan foydalangansiz. Agar siz Java-da yozgan bo'lsangiz, oddiy sababga ko'ra buni qila olmadingiz - bu usul mavjud emas edi. Java-dagi standart sinf kutubxonasi sizga GUI ilovalarini yaratish, ma'lumotlar bazalariga kirish, tarmoq orqali ma'lumotlarni jo'natish, XML o'zgarishlarini amalga oshirish yoki uchinchi tomon kutubxonalaridan usullarni chaqirish uchun vositalarni taqdim etdi. Satrlar to'plamini birlashtirishning oddiy usuli kiritilmagan. Buning uchun sizga uchinchi tomon kutubxonalaridan biri kerak edi. Yaxshiyamki, bu nihoyasiga yetdi! Java 8 da biz nihoyat satrlarni birlashtira olamiz! Java 8 yangi sinfni qo'shdi StringJoiner
. Nomidan ko'rinib turibdiki, biz ushbu sinfdan satrlarni birlashtirish uchun foydalanishimiz mumkin:
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
ikkita yangi statik usuldan foydalanadi 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
Shuningdek, satrlarni birlashtirish uchun yangi APIda oqimlardan foydalangan holda maxsus mavjud :
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»
Shunday qilib, biz boshqa qatorlarni birlashtirish uchun uchinchi tomon kutubxonalariga muhtoj emasmiz! Asl maqola
GO TO FULL VERSION