কোটলিন - একটি স্ট্রিংকে সঠিকভাবে কীভাবে যুক্ত করা যায়


90

একটি খুব প্রাথমিক প্রশ্ন, কোটলিনে একটি স্ট্রিং সংযুক্ত করার সঠিক উপায় কী?

জাভাতে আপনি concat()পদ্ধতিটি ব্যবহার করবেন , যেমন

String a = "Hello ";
String b = a.concat("World"); // b = Hello World

concat()যদিও কোটলিনের জন্য এই ফাংশনটি উপলভ্য নয়। আমি +সাইন ব্যবহার করা উচিত ?

উত্তর:


138

স্ট্রিং টেম্পলেট / ইন্টারপোলেশন

কোটলিনে, আপনি স্ট্রিং ইন্টারপোলেশন / টেম্পলেট ব্যবহার করে সংযুক্ত করতে পারেন :

val a = "Hello"
val b = "World"
val c = "$a $b"

আউটপুটটি হবে: Hello World

অথবা আপনি StringBuilderসুস্পষ্টভাবে ব্যবহার করে সম্মিলিত করতে পারেন ।

val a = "Hello"
val b = "World"

val sb = StringBuilder()
sb.append(a).append(b)
val c = sb.toString()

print(c)

আউটপুটটি হবে: HelloWorld

নতুন স্ট্রিং অবজেক্ট

অথবা আপনি +/ plus()অপারেটর ব্যবহার করে সম্মিলিত করতে পারেন :

val a = "Hello"
val b = "World"
val c = a + b   // same as calling operator function a.plus(b)

print(c)

আউটপুটটি হবে: HelloWorld

  • এটি একটি নতুন স্ট্রিং অবজেক্ট তৈরি করবে।

7
অপারেটর "+" প্লাস () তে অনুবাদ করা হয়েছে, সুতরাং আপনি লিখতে পারেন a.plus(b)বা a + bএকই
বাইটোকড

21
আমি বাইটকোডে সন্ধান করেছি এবং স্ট্রিং বিভাজন অভ্যন্তরীণভাবে স্ট্রিংবিল্ডার ব্যবহার করে
crgarridos

@ ক্রগারিডোস, এর অর্থ কি কোটলিনের জন্য স্ট্রিং "Hello" + "Word"বিভাজনকে স্ট্রিংবিল্ডার ব্যবহার করে স্ট্রিংবিল্ডারকে স্ট্রিংয়ের সাথে যুক্ত করার মতো পারফরম্যান্স বলা যায় someHelloStringBuilder.append("World")?
অ্যাডাম হুরউইটজ

4
স্ট্রিং ইন্টারপোলেশন আক্ষরিক স্ট্রিংয়ের ভিতরে ভেরিয়েবলগুলির রেজোলিউশনকে বোঝায়। তাই প্রযুক্তিগতভাবে হ্যাঁ
crgarridos

23

kotlin.Stringএকটি plusপদ্ধতি আছে:

a.plus(b)

বিশদের জন্য https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html দেখুন ।


4
+অপারেটর স্বাভাবিক, কলিং অনূদিত অপারেটর ফাংশন নয় plus ... এই না কথ্য হয়
জেসন Minard

কেন তুমি এমনটা মনে কর ?
incised

4
a = a.plus(b)উদাহরণস্বরূপ , যেমন হয়েছিলাম
লোরেঞ্জো

@ ফ্লোরেনজোর মন্তব্য ব্যাখ্যা করে যে উত্তরটি উপরের সমাধানগুলির চেয়ে কম কেন পছন্দযোগ্য। যখন সংক্ষিপ্তকরণগুলি একাধিকের উপর নির্ভরশীল হয় যদি বিবৃতিগুলি এর পরিশিষ্টের পদ্ধতির plus()চেয়ে কম ব্যবহারিক হয় StringBuilder
পানোস জিআর

10

আমি উপরের স্বীকৃত উত্তরের সাথে একমত, তবে এটি কেবল জ্ঞাত স্ট্রিং মানগুলির জন্যই ভাল। গতিশীল স্ট্রিং মানগুলির জন্য এখানে আমার পরামর্শ।

// A list may come from an API JSON like
{
   "names": [
      "Person 1",
      "Person 2",
      "Person 3",
         ...
      "Person N"
   ]
}
var listOfNames = mutableListOf<String>() 

val stringOfNames = listOfNames.joinToString(", ") 
// ", " <- a separator for the strings, could be any string that you want

// Posible result
// Person 1, Person 2, Person 3, ..., Person N

এটি বিভাজকের সাথে স্ট্রিংগুলির তালিকা তৈরি করার জন্য দরকারী is


9

হ্যাঁ, আপনি একটি +চিহ্ন ব্যবহার করে সম্মিলিত করতে পারেন । কোটলিনের স্ট্রিং টেম্পলেট রয়েছে, সুতরাং এগুলির মতো ব্যবহার করা ভাল better

var fn = "Hello"
var ln = "World"

"$fn $ln" সংমিশ্রনের জন্য।

আপনি এমনকি String.plus()পদ্ধতি ব্যবহার করতে পারেন ।


+অপারেটর স্বাভাবিক, কলিং অনূদিত অপারেটর ফাংশন নয় plus ... এই না কথ্য হয়
জেসন Minard

আপনি কি দয়া করে ব্যাখ্যা করতে পারবেন যে আপনি কেন + এর প্লাস সংস্করণটি মূর্খতাযুক্ত নয়?
15-15 এ incised

5

এটি চেষ্টা করে দেখুন, আমি মনে করি এটি কোটলিনে স্ট্রিংগুলি সংঘবদ্ধ করার আদি উপায়:

val result = buildString{
    append("a")
    append("b")
}

println(result)

// you will see "ab" in console.

4
এটি এর buildString {পরিবর্তেstringBuild {
আর্নুনিউম

@ অ্যারনয়েম আমি এটি স্থির করেছি (যেমন আপনার নিখরচায় অনুভব করা উচিত ছিল)।
এলেন স্পারটাস

5

@ রাশফার উত্তরের অনুরূপ আমি এটি লিখেছি। আপনার একটি গ্রুপ রয়েছে EditTextএবং সেগুলির মানগুলি বোঝাতে চাইলে আপনি লিখতে পারেন:

listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }

আপনি যদি মনযোগ দিতে চান তবে এটি Mapব্যবহার করুন:

map.entries.joinToString(separator = ", ")

সংমিশ্রিত করতে Bundle, ব্যবহার করুন

bundle.keySet().joinToString(", ") { key -> "$key=${bundle[key]}" }

এটি বর্ণমালা অনুসারে কীগুলি বাছাই করে।

উদাহরণ:

val map: MutableMap<String, Any> = mutableMapOf("price" to 20.5)
map += "arrange" to 0
map += "title" to "Night cream"
println(map.entries.joinToString(separator = ", "))

// price=20.5, arrange=0, title=Night cream

val bundle = bundleOf("price" to 20.5)
bundle.putAll(bundleOf("arrange" to 0))
bundle.putAll(bundleOf("title" to "Night cream"))
val bundleString =
    bundle.keySet().joinToString(", ") { key -> "$key=${bundle[key]}" }
println(bundleString)

// arrange=0, price=20.5, title=Night cream

2

কোটলিনের স্ট্রিংগুলিকে একত্রিত করার বিভিন্ন উপায় রয়েছে উদাহরণ -

a = "Hello" , b= "World"
  1. অপারেটর ব্যবহার করে a+b

  2. plus()অপারেটর ব্যবহার

    a.plus(b)

দ্রষ্টব্য - + কেবল অভ্যন্তরীণভাবে .plus () পদ্ধতিতে রূপান্তরিত

উপরের ২ টি পদ্ধতিতে স্ট্রিং অপরিবর্তনীয় হওয়ায় একটি নতুন স্ট্রিং অবজেক্ট তৈরি করা হয়। যদি আমরা বিদ্যমান স্ট্রিংটি সংশোধন করতে চাই তবে আমরা স্ট্রিংবিল্ডার ব্যবহার করতে পারি

StringBuilder str = StringBuilder("Hello").append("World")

1

আপনার স্ট্রিং + = "নতুন স্ট্রিং"

এইভাবে আপনি একটি স্ট্রিং সংযুক্ত করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.