web-dev-qa-db-ja.com

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言語で行いたいと思います。

171
Rajneesh071

文字列を連結する方法はいくつかあります。

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

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

あなたもすることができます:

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

他にも方法があると思います。

説明のビット

letは定数を作成します。 (一種のNSString)。一度設定した値は変更できません。それでも他のものに追加して、新しい変数を作成することはできます。

varは変数を作成します。 (NSMutableStringのようなものです)その値を変更することができます。しかし、これはStack Overflowで何度も答えられました(letとvarの違いを見てください)。

注意

実際にはletvarは、NSStringNSMutableStringとは非常に異なるですが、それは類推に役立ちます。

308
Fogmeister

これらの方法で文字列を追加できます。

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

私はそれらすべてに名前を付けたと思います。

56
Arbitur
var language = "Swift" 
var resultStr = "\(language) is a new programming language"
28
yoeriboven

これもうまくいきます:

var string = "Swift"
var resultStr = string + " is a new Programming Language"
12
CW0007007

これは、ある文字列を別の文字列に追加するために使用されています。

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

あなたもこれを試すことができます: - +キーワード。

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

このコードを試してください。

11
Jitendra
let the_string = "Swift"
let resultString = "\(the_string) is a new Programming Language"
10
Bagvendt

とてもシンプル:

let StringA = "Hello"
let StringB = "World"
let ResultString = "\(StringA)\(StringB)"
println("Concatenated result = \(ResultString)")
9
svmrajesh

Swiftで stringByAppendingString を使用できるようになりました。

var string = "Swift"
var resultString = string.stringByAppendingString(" is new Programming Language")
9
Mark Moeykens

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
Esqarrouth

これは文字列補間と呼ばれます。 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
Anil Gupta

SwiftではstringByAppendingFormatも使用できます。

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
Pushpa

を使用して結合文字列を印刷するには

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

またはString3は2つの文字列の組み合わせの出力を格納します

let strin3 = "\(string1)\(string2)"
3
Pvni

これを行うにはSwiftString( https://github.com/amayne/SwiftString )を使用できます。

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

免責事項:私はこの拡張子を書いた

2
eurobrew

Objective-CからSwift(4)に切り替えたところ、よく使用することがわかりました。

let allWords = String(format:"%@ %@ %@",message.body!, message.subject!, message.senderName!)
0
Sjakelien

Swift 5 Appleでは、#記号を使用したRaw文字列を導入しています。

例:

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

\の後に記号#が必要です。通常の\(name)は、文字列内の文字として解釈されます。

0
Yogendra Singh

スイフト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
Nik Kov