如何在Swift UI中从字符串中获取子字符串?

编程入门 行业动态 更新时间:2024-10-22 11:36:49
本文介绍了如何在Swift UI中从字符串中获取子字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在UIKit中,我使用相同的方法从长字符串中仅获取一部分,并且在那里工作.但是,它不能在快速的ui应用程序中工作.我想知道它是否不是字符串,而是其他东西.有谁知道更好的解决方案,只从长文本中获取一个短子字符串?

In UIKit I used the same method to get only one part out of a long string and there it worked. However it dosen't work in swift ui app. I have wondered if it might be that it is not a string, but something else. Does anyone know a better solution to only get a short substring out of the long text?

let url = URL(string: "midcdmz.nrel.gov/apps/spa.pl?syear=2020&smonth=1&sday=1&eyear=2020&emonth=1&eday=1&otype=0&step=60&stepunit=1&hr=12&min=0&sec=0&latitude=39.743&longitude=-105.178&timezone=-7.0&elev=1829&press=835&temp=10&dut1=0.0&deltat=64.797&azmrot=180&slope=0&refract=0.5667&field=0") struct ContentView: View { var html = try! String(contentsOf: url!, encoding: String.Encoding.ascii) let leftSideOfTheValue = "1/1/2020,0:00:00," let rightSideOfTheValue = "1/1/2020,1:00:00," guard let leftRange = html.range(of: leftSideOfTheValue) else { print("cant find left range") return } guard let rightRange = html.range(of: rightSideOfTheValue) else { print("cant find right range") return let rangeOfTheValue = leftRange.upperBound..<rightRange.lowerBound let elevationInfo = (html[rangeOfTheValue]) var body: some View { Text(elevationInfo) }

推荐答案

可能的解决方案(使用功能):

Possible solution (Using function):

struct ContentView: View { private let url = URL(string: "midcdmz.nrel.gov/apps/spa.pl?syear=2020&smonth=1&sday=1&eyear=2020&emonth=1&eday=1&otype=0&step=60&stepunit=1&hr=12&min=0&sec=0&latitude=39.743&longitude=-105.178&timezone=-7.0&elev=1829&press=835&temp=10&dut1=0.0&deltat=64.797&azmrot=180&slope=0&refract=0.5667&field=0") var body: some View { Text(self.getSubstring(from: url)) } private func getSubstring(from url: URL?) -> String { guard let url = url else { return "" } let html = try! String(contentsOf: url, encoding: String.Encoding.ascii) let leftSideOfTheValue = "1/1/2020,0:00:00," let rightSideOfTheValue = "1/1/2020,1:00:00," guard let leftRange = html.range(of: leftSideOfTheValue) else { print("cant find left range") return "" } guard let rightRange = html.range(of: rightSideOfTheValue) else { print("cant find right range") return "" } let rangeOfTheValue = leftRange.upperBound..<rightRange.lowerBound return String(html[rangeOfTheValue]) } }

更多推荐

如何在Swift UI中从字符串中获取子字符串?

本文发布于:2023-10-27 00:02:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1531729.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   如何在   Swift   UI

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!