Как объединить строки в 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.

+181
источник поделиться
17 ответов

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

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, но это помогает аналогию.

+320
источник

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

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

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

+59
источник
другие ответы

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


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

var language = "Swift" 
var resultStr = "\(language) is a new programming language"
+29
источник

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

var string = "swift"
var resultStr = string + " is a new Programming Language"
+13
источник

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

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

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

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

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

+11
источник
let the_string = "Swift"
let resultString = "\(the_string) is a new Programming Language"
+10
источник

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

let StringA = "Hello"
let StringB = "World"
let ResultString = "\(StringA)\(StringB)"
println("Concatenated result = \(ResultString)")
+9
источник

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

var string = "Swift"
var resultString = string.stringByAppendingString(" is new Programming Language")
+9
источник

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
источник

Он называется Интерполяцией строк. Это способ создания новой строки с 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
источник

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

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

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

let strin3 = "\(string1)\(string2)"
+3
источник

Можно также использовать 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
источник

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

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

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

+2
источник

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"
+2
источник

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

let allWords = String(format:"%@ %@ %@",message.body!, message.subject!, message.senderName!)
0
источник

В Swift 5 Apple вводит необработанные строки, используя символы #.

Пример:

print(#"My name is "XXX" and I'm "28"."#)
let name = "XXX"
print(#"My name is \#(name)."#)

символ # необходим после \. Обычное\(имя) будет интерпретироваться как символы в строке.

0
источник

От: Matt Neuburg Book 'Основы программирования iOS 13 с помощью Swift.' :

Для объединения (объединения) двух строк самый простой подход заключается в использовании оператора +:

let s = "hello"
let s2 = " world"
let greeting = s + s2

Это удобное обозначение возможно потому, что оператор + перегружен: он выполняет одно, когда операндами являются числа (сложение чисел), и другое, когда операндами являются строки (конкатенация). Оператор + имеет ярлык + = назначение; естественно, переменная слева должна быть объявлена с помощью var:

var s = "hello"
let s2 = " world"
s += s2

В качестве альтернативы to + = вы можете вызвать метод экземпляра append (_ :) :

var s = "hello"
let s2 = " world"
s.append(s2)

Другой способ объединения строк - это метод join (разделитель :). Вы начинаете с массива строк, который нужно объединить, и передаете ему строку, которая должна быть вставлена между ними:

let s = "hello"
let s2 = "world"
let space = " "
let greeting = [s,s2].joined(separator:space)
0
источник

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