JavaRush /Java Blog /Random-TL /Sa Java 8 maaari mong pagsamahin ang mga string
theGrass
Antas
Саратов

Sa Java 8 maaari mong pagsamahin ang mga string

Nai-publish sa grupo
Sigurado akong nasa sitwasyon ka kung saan gusto mong pagsamahin ang maraming linya. Kung hindi ka sumulat sa Java, malamang na gumamit ka ng function join()na ibinigay sa iyo ng programming language mismo. Kung sumulat ka sa Java, hindi mo ito magagawa sa isang simpleng dahilan - hindi umiiral ang paraang ito. Ang karaniwang library ng klase sa Java ay nagbigay sa iyo ng mga tool upang lumikha ng mga GUI application, upang ma-access ang mga database, upang magpadala ng data sa network, upang magsagawa ng mga pagbabagong XML, o upang tumawag sa mga pamamaraan mula sa mga third-party na aklatan. Ang isang simpleng paraan para sa pagsasama-sama ng isang koleksyon ng mga string ay hindi kasama. Upang gawin ito, kailangan mo ng isa sa maraming mga aklatan ng third-party. Sa Java 8 maaari mong pagsamahin ang mga string - 1Sa kabutihang palad, ito ay natapos na! Sa Java 8, maaari na nating pagdugtungin ang mga string! Nagdagdag ang Java 8 ng bagong klase na tinatawag na StringJoiner. Tulad ng iminumungkahi ng pangalan, maaari naming gamitin ang klase na ito upang pagsamahin ang mga string:
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"
Stringgumagamit ng dalawang bagong static na pamamaraan 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"
Gayundin, para sa pagsasama-sama ng mga string mayroong isang espesyal na isa Collectorsa bagong API gamit ang mga stream:
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»
Sa ganitong paraan hindi na talaga namin kailangan ng mga third party na aklatan para pagdugtungin ang mga string! Orihinal na artikulo
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION