JavaRush /Java блогу /Random-KY /Java 8де саптарды бириктире аласыз
theGrass
Деңгээл
Саратов

Java 8де саптарды бириктире аласыз

Группада жарыяланган
Сиз бир нече саптарды бириктиргиңиз келген кырдаалга туш болгонуңузга ишенем. Эгер сиз Java тorнде жазбасаңыз, анда сиз join()программалоо тor тарабынан берилген функцияны колдонсоңуз керек. Эгер сиз Java тorнде жазган болсоңуз, анда сиз муну жөнөкөй себеп менен кыла алган жоксуз - бул ыкма болгон эмес. 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