Swift - 如何将连字符/减号转换为+符号

时间:2015-06-18 22:11:11

标签: string swift replace converter

我从以下代码中的iOS反向地理编码中获取字符串变量中的地址。

    CLGeocoder().reverseGeocodeLocation(imageLocation, completionHandler:
                    {(placemarks, error) in
      dispatch_async(dispatch_get_main_queue(), {                            
 if (error != nil) {println("reverse geodcode fail: \(error.localizedDescription)")
      textField.placeholder = "Address not found."              
     }
 else
    {
 if placemarks.count > 0
    {
var placemark:CLPlacemark = placemarks[0] as! CLPlacemark     
var locationAddress:NSArray = placemark.addressDictionary["FormattedAddressLines"]   as! NSArray
 var tmpAddress = locationAddress.componentsJoinedByString("\n")
 textField.text = tmpAddress as String
                                }
                            }
                        })
                })

tmpAddress变量具有地址 - “2362-2658 W 12th St \ nCity,State 20301 \ nCountry Name”

我需要在tmpAddress变量中将2362-2658更改为2362 + 2658但我无法通过

执行此操作
tmpAddress = tmpAddress.stringByReplacingOccurrencesOfString("-", withString: "+")

tmpAddress = tmpAddress.stringByReplacingOccurrencesOfString("\u{2212}", withString: " ")

请有人建议为什么上面的stringByReplacingOccurrencesOfString无法正常工作,如何实现。

2 个答案:

答案 0 :(得分:3)

tmpAddress = tmpAddress.stringByReplacingOccurrencesOfString("-", withString: "+")

这取代了' - '用' +'

第一个参数是搜索字符串,第二个参数是替换字符串。

答案 1 :(得分:0)

尝试这样的事情:

var str =  "2362-2658 W 12th St\nCity, State 20301\nCountry Name"
var start = str.startIndex
var end = advance(start, str.characters.count)
var modStr = str .stringByReplacingOccurrencesOfString("-", withString: "+", options:.CaseInsensitiveSearch, range: Range<String.Index>(start: start, end: end))

或简化:

var modStr = str .stringByReplacingOccurrencesOfString("-", withString: "+")

您的问题是您正在用“ - ”替换空格“”。原始代码中没有带“+”的“ - ”。