2016-10-08 2 views
2

は、私は次の形式で、一般的な文字列プロパティを持っている:15555555555.私はUILabelで、次の形式で表示しようとしています:文字を特定の形式で文字列に挿入するにはどうすればよいですか?

(555)
555-5555

私は希望UILabelサイズを変更することを避けるために、モードに基づいて異なるテキストを表示するため、テキストを折り返すようにします。私はNSMutableStringと他のものの間myString.components(separatedBy:)を使用してみましたが動作するようにコードを取得してトラブルを抱えています:

第一未遂方法:

let phoneNumber = NSMutableString(string: self.phoneNumber) 
phoneNumber.remove(at: 0) 
phoneNumber.insert("-", at: 6) 
phoneNumber.insert(")", at: 3) 
phoneNumber.insert("(", at: 0) 
let finalString: String = phoneNumberArray.joined() 

第二試みた方法:私は

var phoneNumberArray = self.phoneNumber.components(separatedBy: “”) 
phoneNumber.remove(at: 0) 
phoneNumber.insert("-", at: 6) 
phoneNumber.insert(")", at: 3) 
phoneNumber.insert("(", at: 0) 
let finalString: String = phoneNumberArray.joined() 

すべてしようとするとエラーが発生していると私は2つの文字列に分割する以外の方法でそれをラップさせる方法がわからない。どんな助けでも大歓迎です。前もって感謝します。

+0

どのようなエラーが表示されますか? –

+0

https://github.com/marmelroy/PhoneNumberKit – Adrian

答えて

2

[String]のように配列タイプに注意してください。[Character]ではありません。

以下のコードを使用して例を入力しました。これは電話番号を受け取り、各桁を配列内のString要素にします。これにより、String文字を挿入して削除できます。また、実際にはStringに改行コード\nを使用することもできます。このエスケープシーケンスは、新しい行を意味し、それの後にすべてが「ラップ」します:

var phoneNumberArray : [String] = self.phoneNumber.characters.map{String($0)} 
phoneNumberArray.remove(at:0) 
phoneNumberArray.insert("-", at: 6) 
phoneNumberArray.insert("\n", at: 3) 
phoneNumberArray.insert(")", at: 3) 
phoneNumberArray.insert("(", at: 0) 
let finalString: String = phoneNumberArray.joined() 

このコードはテストされていませんが、動作するはずです。

+0

ありがとう@IanMoses。これはまさに私が探していたものです。 –

関連する問題