-4
鉴于从互联网上获得的字符串编辑号码,如:斯威夫特 - 解析字符串提取并在它
“雪让位到中雨(共10毫米)于星期四晚上最重的除尘冻结。 -thaw条件(周五早晨最高8°C,周三晚上最低-2°C),主要是强风。“
使用Swift 3,我想将温度转换为华氏温度。所以我需要找到任何以°C为后缀的数字(包括负数);将它们转换为华氏度,然后将该整数替换回字符串中。
我最初试图使用:components(separatedBy:String)。我确实得到它与这种方法一起工作。尽管我认为可能有更好的方法。
func convertStringToFahrenheit (_ message: String) -> String{
var stringBuilder = String()
let stringArray = message.components(separatedBy: "°C")
for subString in stringArray {
if subString != stringArray.last {
if subString.contains("(max "){
let subStringArray = subString.components(separatedBy: "(max ")
stringBuilder.append(subStringArray[0])
stringBuilder.append("(max ")
if var tempInt = Int(subStringArray[1]){
tempInt = convertCelsiusToFahrenheit(tempInt)
stringBuilder.append(String(tempInt))
stringBuilder.append("°F")
}
}
else if subString.contains(", min "){
let subStringArray = subString.components(separatedBy: ", min ")
stringBuilder.append(subStringArray[0])
stringBuilder.append(", min ")
if var tempInt = Int(subStringArray[1]){
tempInt = convertCelsiusToFahrenheit(tempInt)
stringBuilder.append(String(tempInt))
stringBuilder.append("°F")
}
}
}
else {
stringBuilder.append(subString)
}
}
return stringBuilder
}
你为什么不使用像雅虎天气的API? –
顺便说一句,你应该发布你的代码。你曾经尝试过什么,它没有工作。 –
我没有使用API,因为这个应用程序仅仅是我的学生在从网页抓取内容时的一个教训。我们将在未来的课程中使用API。 –