【问题标题】:Swift - how to convert hyphen/minus sign into + signSwift - 如何将连字符/减号转换为 + 号
【发布时间】:2015-09-04 18:15:27
【问题描述】:

我正在从下面的代码中的 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 不起作用以及如何实现。

【问题讨论】:

  • 我在研究的早期曾看过它——它对我不起作用。我尝试将“”转换为“+”,这可行,但将“-”转换为“+”不起作用。

标签: string swift replace converter


【解决方案1】:

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

这会将“-”替换为“+”

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

【讨论】:

  • 我试过了,但没有用。我在两个数字之间的“-”不是简单的减号?
  • 然后,打印出原始输出字符串并从命令行复制'-'符号并将其粘贴到代码中? :)
【解决方案2】:

试试这样的:

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: "+")

您的问题是您将空格“”替换为“-”。不是原始代码中带有“+”的“-”。

【讨论】:

  • 简化选项不起作用。我尝试了第一个选项,但在行 - var end = Advance(start, str.characters.count) 处出现错误“字符串没有名为字符的成员”
  • 我在下面尝试只是为了传递给该错误,但仍然“-”没有转换为“+” var str = tmpAddress var start = str.startIndex var end = advance(start, 9) var modStr = str .stringByReplacingOccurrencesOfString("-", withString: "+", options:.CaseInsensitiveSearch, range: Range(start: start, end: end))
猜你喜欢
  • 2014-10-29
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 2021-10-18
  • 2011-10-21
  • 2019-11-08
相关资源
最近更新 更多