مجھے یقین ہے کہ آپ اس صورتحال میں رہے ہوں گے جہاں آپ متعدد لائنوں کو جوڑنا چاہتے تھے۔ اگر آپ نے جاوا میں نہیں لکھا، تو شاید آپ نے
join()
پروگرامنگ لینگویج کے ذریعہ فراہم کردہ فنکشن کا استعمال کیا ہے۔ اگر آپ نے جاوا میں لکھا ہے، تو آپ یہ ایک سادہ وجہ سے نہیں کر سکتے ہیں - یہ طریقہ موجود نہیں تھا۔ جاوا میں معیاری کلاس لائبریری نے آپ کو GUI ایپلیکیشنز بنانے، ڈیٹا بیس تک رسائی حاصل کرنے، نیٹ ورک پر ڈیٹا بھیجنے، XML تبدیلیاں کرنے، یا فریق ثالث لائبریریوں سے کال کرنے کے طریقے فراہم کیے ہیں۔ تاروں کے مجموعہ کو جوڑنے کا ایک آسان طریقہ شامل نہیں تھا۔ ایسا کرنے کے لیے، آپ کو تیسری پارٹی کی بہت سی لائبریریوں میں سے ایک کی ضرورت ہے۔ خوش قسمتی سے، یہ ختم ہو گیا ہے! جاوا 8 میں ہم آخر کار تاروں کو جوڑ سکتے ہیں! جاوا 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