LoginSignup
4
4

More than 5 years have passed since last update.

The Swift Programming Language "String and Character"

Last updated at Posted at 2014-06-08

The Swift Programming LanguageのLanguage Guideの"String and Characte"の章をざっとまとめたものです。
Objective-Cを始め、既に他の言語を習得されてる方向けです。

前章 Basic Operators
次章 Collection 配列

  • String型は、Character型の連なり
  • 文字コードはUnicode

初期化と空文字

var emptyString = ""
var anotherEmptyString = String()

emptyString == anotherEmptyString // true

String Mutability, String are Value Type.

var str = "abc"
str += "def"
str = str + "ghi"

stringは値型なので、別の変数に文字列を代入すると、値コピーされる。
ただし常に値コピーをするのではなく、必要に応じて(おそらく文字列の値が変化するときに)コピーするよう最適化される。

var a = "abc"

var b = a
a == b // true
a === b // false

a === a // ...これもfalseになってしまった

Character

"一文字"がCharacterとして扱える.

let yen:Character = "¥"

for in loop


for ch in "STRING" {
 println(ch)
}

文字列長

countElements関数を用いる。

※ ...毎回文字列探索する???

var a = "あいうえお"
countElements(a) // 5

String Interpolation(書き入れ)

Ruby での "abc#{var}" のように文字列中に値をする。
Swiftでは、\(var)で文字列に展開する。

let error = 3
let message = "error=\(error)" 

比較

完全一致(==)、接頭辞一致(var.hasPrefix("prefix")、末尾時一致(var.hasSuffix("suffix")を提供する.

var test="abc def ghi"
test == "abc def ghi" // true
test.hasPrefx("abc") // true
test.hasSuffix("ghi") // true

Unicode

  • utf8でUInt8の連なりでUnicodeにアクセスできる
  • utf16でUInt16の連なりでUnicodeにアクセスできる
  • unicodeScalarsでUnicodeScalarの連なりでUnicodeにアクセスできる
var str = "あいうえお"

for ch in str.utf8 {
  ch // Uint8の1byteコード.
}

for ch in str.utf16 {
  ch // UInt16の2byteコード
}

for ch in str.unicodeScalars {
  println("\(ch.value)") // コードとして出力
  println("\(ch)") // 文字として出力
}

次章 Collection 配列

4
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4