Сіз бірнеше жолды біріктіргіңіз келетін жағдайда болғаныңызға сенімдімін. Егер сіз Java тілінде жазбаған болсаңыз, онда сіз
join()
бағдарламалау тілінің өзі берген функцияны пайдаланған боларсыз. Егер сіз Java тілінде жазсаңыз, мұны қарапайым себеппен жасай алмайсыз - бұл әдіс болған жоқ. Java тіліндегі стандартты класс кітапханасы сізге GUI қолданбаларын жасауға, дерекқорларға қол жеткізуге, желі арқылы деректерді жіберуге, XML түрлендірулерін орындауға немесе үшінші тарап кітапханаларынан әдістерді шақыруға арналған құралдармен қамтамасыз етті. Жолдар жинағын біріктірудің қарапайым әдісі қосылмаған. Мұны істеу үшін сізге көптеген үшінші тарап кітапханаларының бірі қажет болды. Бақытымызға орай, бұл аяқталды! 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»
Осылайша, бізге енді жолдарды біріктіру үшін үшінші тарап кітапханалары қажет емес! Түпнұсқа мақала
GO TO FULL VERSION