Как объединить строки в Swift?

Как объединить строку в Swift?

В Objective-C нам нравится

NSString *string = @"Swift";
NSString *resultStr = [string stringByAppendingString:@" is a new Programming Language"];

или же

NSString *resultStr=[NSString stringWithFormat:@"%@ is a new Programming Language",string];

Но я хочу сделать это на языке Swift.

170
04 июня '14 в 12:49
источник поделиться
15 ответов

Вы можете объединить строки несколькими способами:

let a = "Hello"
let b = "World"

let first = a + ", " + b
let second = "\(a), \(b)"

Вы также можете сделать:

var c = "Hello"
c += ", World"

Я уверен, что есть и другие способы.

Бит описания

let создает константу. (вроде как NSString). Вы не можете изменить его значение после его установки. Вы все равно можете добавить его к другим вещам и создать новые переменные.

var создает переменную. (вроде как NSMutableString), чтобы вы могли изменить его значение. Но об этом несколько раз ответили на Qaru (см. разницу между let и var).

Примечание

В действительности let и var сильно отличаются от NSString и NSMutableString, но это помогает аналогию.

308
04 июня '14 в 12:55
источник

Связанные вопросы


Похожие вопросы

Вы можете добавить строку следующим образом:

  • str += ""
  • str = str + ""
  • str = str + str2
  • str = "" + ""
  • str = "\(variable)"
  • str = str + "\(variable)"

Я думаю, что я назвал их всех.

56
04 июня '14 в 13:02
источник
var language = "Swift" 
var resultStr = "\(language) is a new programming language"
28
04 июня '14 в 12:52
источник

Это тоже будет работать:

var string = "swift"
var resultStr = string + " is a new Programming Language"
12
04 июня '14 в 12:54
источник

\ это используется для добавления одной строки в другую строку.

var first = "Hi" 
var combineStr = "\(first) Start develop app for swift"

Вы также можете попробовать: - + ключевое слово.

 var first = "Hi" 
 var combineStr = "+(first) Start develop app for swift"

Попробуйте этот код.

11
04 июня '14 в 13:33
источник
let the_string = "Swift"
let resultString = "\(the_string) is a new Programming Language"
10
04 июня '14 в 12:55
источник

Теперь вы можете использовать stringByAppendingString в Swift.

var string = "Swift"
var resultString = string.stringByAppendingString(" is new Programming Language")
9
18 мая '16 в 8:47
источник

Очень просто:

let StringA = "Hello"
let StringB = "World"
let ResultString = "\(StringA)\(StringB)"
println("Concatenated result = \(ResultString)")
9
09 марта '15 в 9:35
источник

Xcode не принимает необязательные строки, добавленные с нормальной строкой. Я написал это расширение, чтобы решить эту проблему:

extension String {
    mutating func addString(str: String) {
        self = self + str
    }
}

Тогда вы можете назвать это как:

var str1: String?
var str1 = "hi"
var str2 = " my name is"
str1.addString(str2)
println(str1) //hi my name is

Однако теперь вы можете сделать что-то вроде этого:

var str1: String?
var str1 = "hi"
var str2 = " my name is"
str1! += str2
5
24 июля '15 в 16:39
источник

Он называется Интерполяцией строк. Это способ создания новой строки с CONSTANTS, VARIABLE, LITERALS и EXPRESSIONS.  для примеров:

      let price = 3
      let staringValue = "The price of \(price) mangoes is equal to \(price*price) "

также

let string1 = "anil"
let string2 = "gupta"
let fullName = string1 + string2  // fullName is equal to "anilgupta"
or 
let fullName = "\(string1)\(string2)" // fullName is equal to "anilgupta"

это также означает объединение значений строк.

Надеюсь, это поможет вам.

4
23 нояб. '16 в 21:48
источник

Можно также использовать stringByAppendingFormat в Swift.

var finalString : NSString = NSString(string: "Hello")
finalString = finalString.stringByAppendingFormat("%@", " World")
print(finalString) //Output:- Hello World
finalString = finalString.stringByAppendingFormat("%@", " Of People")
print(finalString) //Output:- Hello World Of People
3
27 апр. '16 в 9:11
источник

Чтобы напечатать комбинированную строку, используя

Println("\(string1)\(string2)")

или String3 хранит вывод комбинации из двух строк

let strin3 = "\(string1)\(string2)"
3
10 нояб. '14 в 15:30
источник

Для этого вы можете использовать SwiftString (https://github.com/amayne/SwiftString).

"".join(["string1", "string2", "string3"]) // "string1string2string"
" ".join(["hello", "world"]) // "hello world"

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я написал это расширение

2
06 февр. '16 в 20:25
источник

Я только что переключился с Objective-C на Swift (4), и я обнаружил, что часто использую:

let allWords = String(format:"%@ %@ %@",message.body!, message.subject!, message.senderName!)
0
04 дек. '17 в 16:00
источник

Swift 4.2

Вы также можете использовать расширение:

extension Array where Element == String? {
    func compactConcate(separator: String) -> String {
        return self.compactMap { $0 }.filter { !$0.isEmpty }.joined(separator: separator)
    }
}

Использование:

label.text = [m.firstName, m.lastName].compactConcate(separator: " ")

Результат:

"The Man"
"The"
"Man"
0
20 дек. '18 в 16:03
источник

Посмотрите другие вопросы по меткам или Задайте вопрос