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


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.