2016-04-01 18 views
1

私の1つのアプリケーションには、各パートを分離して処理する必要のある時間文字列があります。componentsSeparatedByStringが迅速に機能しない

私の文字列は、だから、文字列を分離するために私のコードは次のように同じように私はtimePartscurrentPartを取得しています。このコードから

let allparts = self.placeOpenTime.componentsSeparatedByString(",") 

for (index,_) in allparts.enumerate() { 

    let currentPart = allparts[index] 

    let timeParts = currentPart.componentsSeparatedByString(" - ") 
} 

ある

9:00 AM – 11:00 PM 

または

9:00 AM – 11:00 PM,9:00 AM – 11:00 PM 

Printing description of self.placeOpenTime: 
"10:00 AM – 1:00 PM, 5:00 – 8:00 PM" 
Printing description of allparts: 
▿ 2 elements 
    - [0] : "10:00 AM – 1:00 PM" 
    - [1] : " 5:00 – 8:00 PM" 

のようなものです

currentPart = "9:00 - 午後11:00" すべてのヘルプ

[0] : 9:00 AM 
[1] : 11:00 PM 

でなければなりません

Printing description of timeParts: 
▿ 1 elements 
    - [0] : "9:00 AM – 11:00 PM" 

が理解されるであろう。前もって感謝します。

+3

で、チェックUnicodeは – Wain

+0

@Wainはい、それを値です。ありがとう。 – Max

答えて

1

@wainのコメントによると、私はユニコードの値が " - "であることを確認しています。

私は小さなことを行うために、より複雑なコードで、このコード

let currentPart : String = allparts[index] 

let data = "\\U2013".dataUsingEncoding(NSUTF8StringEncoding) 

let unicode = NSString(data: data!, encoding: NSNonLossyASCIIStringEncoding) 

let timeParts = currentPart.componentsSeparatedByString(" \(unicode!) ") 

を交換しました。だから、@Martin Rあたりとして提案し、これを行う簡単なコードは、その後、あなたのコード内のハイフン文字がテキストで1と一致していません

let currentPart : String = allparts[index] 

let timeParts = currentPart.componentsSeparatedByString(" \u{2013} ") 
+2

これははるかに複雑です。あなたは 'components-definition '("キーボードのoption-minus ")で、' componentsSeparatedByString( "\\ {2013}") 'または単に' componentsSeparatedByString( " - ") 'を' -'と書くことができます。 –

+0

@ MartinR、そうだった。ありがとう。私は答えを更新します。 – Max

0
//may be issue with separetor string , once check is the separtor is proper string or not 
let timeParts = currentPart.componentsSeparatedByString("-") 
関連する問題