2014-11-27 1 views
1

I이 형식으로 저장 전화 번호 문자열 :대안은 사용하는 전화 번호 문자열에 숫자를 추가하는 빠른

  • (14) 99999-9999
  • +55 (14) 9999-9999
  • 55 내가 알고리즘은 결과를 얻을 드 9999-9999 전에 90분의 9,090을 추가 할 필요가보다 (14) 99999-9999
  • 99999-9999

:

,
  • 90 (14) 99999-9999
  • +55 90 (14) 9999-9999
  • +55 90 (14) 99999-9999
  • 9090 99999- 9999

나는 알고리즘을 사용하여이를 수행하는 방법을 알고 있지만, 내가 가장 쉽고 더 좋은 방법으로 할 수 있는지 알아야한다. ike use regex).

+0

규칙을보다 정확하게 지정하십시오. 언제 90 9090을 추가 하시겠습니까? 이 숫자를 별도의 문자열로 사용하고 있습니까? 아니면 파일에서 읽는 중입니까? 그렇다면 구분되는 방법은 무엇입니까? – drewmoore

+0

전화 번호는 몇 번이고 (14) 99999-9999, 때로는 +55 (14) 9999-9999 등입니다. 규칙은 간단합니다. 문자열에 (14)를 입력하면 90을 추가해야합니다. 그것은 9090 추가 존재하지 않습니다. 내가 그것을 할 큰 알고리즘을 할 수 있지만 정규식을 사용하여 간단한 솔루션을 만들 수 있습니까? – marchiore

답변

2

당신은 정규 표현식 매치로 작업을 수행 할 수 있습니다

let str = "+55 (14) 99999-9999" 
let optRange = str.rangeOfString("[(]14[)]", options: .RegularExpressionSearch) 
if let range = optRange? { 
    let prefix = Range<String.Index>(start:str.startIndex, end:range.startIndex) 
    let suffix = Range<String.Index>(start:range.startIndex, end:str.endIndex) 
    let res = "\(str.substringWithRange(prefix))90 \(str.substringWithRange(suffix))" 
    println(res) 
} 

+55 90 (14) 99999-9999 

당신은 (14) 문자열이 발견되지 않는 경우 상황에 대처하기 위해 else 분기를해야 생산하고 있습니다.

+0

그게 내가 찾는거야! 감사! – marchiore