1

NSCharacterSetSwift で[A-Z] を含むものを定義したい(ダブルバイトに注意、これは [AZ] ではない)。

それを行うための適切な構文は何ですか? 私が Objectiv C で作業していた以下のコードは、それほど簡単に Swift に変換されないようです。

    NSRange alphaDoubleByteRange;
    NSMutableCharacterSet *alphaDoubleByteLetters;
    alphaDoubleByteRange.location = (unsigned int)[@"A" characterAtIndex:0];
    alphaDoubleByteRange.length = 26;
    alphaDoubleByteLetters = [[NSMutableCharacterSet alloc] init];
    [alphaDoubleByteLetters formUnionWithCharacterSet:[NSCharacterSet characterSetWithRange:alphaDoubleByteRange]];
    // Now alphaDoubleByteLetters contains what I want.
4

1 に答える 1

1

Unicode スカラー値の範囲から文字セットを作成できます。

let firstCode = Int("A".unicodeScalars.first!.value)
let lastCode =  Int("Z".unicodeScalars.first!.value)
let alphaDoubleByteRange = NSRange(location: firstCode, length: lastCode - firstCode + 1)
let alphaDoubleByteLetters = NSCharacterSet(range: alphaDoubleByteRange)

または、Unicode テーブルで文字を検索し、スカラー値を直接使用します。

let firstCode = 0xFF21  // "A"
let lastCode =  0xFF3A  // "Z"
// ...
于 2016-08-16T07:58:51.163 に答える