[string] Kotlin-문자열을 올바르게 연결하는 방법

매우 기본적인 질문입니다. Kotlin에서 문자열을 연결하는 올바른 방법은 무엇입니까?

Java에서는 다음 concat()과 같은 방법을 사용합니다.

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

concat()기능은 Kotlin에서 사용할 수 없습니다. +표지판을 사용해야합니까 ?



답변

Kotlin에서는 문자열 보간 / 템플릿을 사용하여 연결할 수 있습니다 .

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

출력은 다음과 같습니다. Hello World

또는 +/ plus()연산자를 사용하여 연결할 수 있습니다 .

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

print(c)

출력은 다음과 같습니다. HelloWorld

또는 StringBuilder.

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

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

print(c)

출력은 다음과 같습니다. HelloWorld


답변

kotlin.Stringplus방법을 :

a.plus(b)

자세한 내용은 https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html 을 참조하십시오.


답변

예, +기호를 사용하여 연결할 수 있습니다 . Kotlin에는 문자열 템플릿이 있으므로 다음과 같이 사용하는 것이 좋습니다.

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

"$fn $ln" 연결을 위해.

String.plus()방법을 사용할 수도 있습니다 .


답변

위의 대답에 동의하지만 알려진 문자열 값에만 좋습니다. 여기에 동적 문자열 값에 대한 제안이 있습니다.

// 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

이것은 구분 기호로 문자열 목록을 연결하는 데 유용합니다.


답변

@Rhusfer 대답비슷하게 내가 이것을 썼습니다. 그룹이 EditText있고 값을 연결하려는 경우 다음 과 같이 작성할 수 있습니다.

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

을 연결 HashMap하려면 다음을 사용하십시오.

map.entries.joinToString(separator = ", ")
// Result:
// id=123, name=John, surname=Smith


답변

이것을 시도해보십시오. Kotlin에서 문자열을 연결하는 기본 방법이라고 생각합니다.

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

println(result)

// you will see "ab" in console.


답변

kotlin 예제에서 문자열을 연결하는 다양한 방법이 있습니다.

a = "Hello" , b= "World"
  1. + 연산자 사용
    a+b

  2. plus()연산자 사용

    a.plus(b)

참고-+는 내부적으로 .plus () 메서드로만 변환됩니다.

위의 두 메서드에서 문자열이 변경 불가능하므로 새 문자열 객체가 생성됩니다. 기존 문자열을 수정하려면 StringBuilder를 사용할 수 있습니다.

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