JavaRush /จาวาบล็อก /Random-TH /ใน Java 8 คุณสามารถเชื่อมสตริงเข้าด้วยกันได้
theGrass
ระดับ
Саратов

ใน Java 8 คุณสามารถเชื่อมสตริงเข้าด้วยกันได้

เผยแพร่ในกลุ่ม
ฉันแน่ใจว่าคุณอยู่ในสถานการณ์ที่คุณต้องการต่อหลายบรรทัดเข้าด้วยกัน หากคุณไม่ได้เขียนด้วยภาษา Java คุณอาจใช้ฟังก์ชันjoin()ที่มาจากภาษาโปรแกรมเอง หากคุณเขียนด้วย Java คุณไม่สามารถทำเช่นนี้ได้ด้วยเหตุผลง่ายๆ - ไม่มีวิธีนี้ ไลบรารีคลาสมาตรฐานใน 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