gpt4 book ai didi

Swift NSScanner 不返回起始字符

转载 作者:行者123 更新时间:2023-11-30 14:03:41 25 4
gpt4 key购买 nike

我正在扫描 SVG 路径字符串,并使用 NSScanner 尝试将其分解为多个组件。当它运行时,虽然我得到了组件,但我没有得到“类型”

例如:“m 186.14021,456.15955 3.19716,8.75681 c 1.78393”

应返回:“m 186.14021,456.15955 3.19716,8.75681”

实际结果:“186.14021,456.15955 3.19716,8.75681”

有什么想法我的代码出了问题吗?

import UIKit

let whitespaceAndPunctuationSet = NSMutableCharacterSet.whitespaceAndNewlineCharacterSet()
whitespaceAndPunctuationSet.formUnionWithCharacterSet(NSCharacterSet.punctuationCharacterSet())


var str = "m 186.14021,456.15955 3.19716,8.75681 c 1.78393,0.93528 30.33822,25.2032 27.48643,47.35972 -4.11654,31.98273 -39.24645,39.28157 -59.94003,28.99354 -20.69358,-10.28804 -17.12572,-56.58417 -14.98501,-58.45472 2.14072,-1.87055 24.97501,-80.4337 44.24145,-26.65535 z"
let characterSet = NSCharacterSet(charactersInString: "mlhvcsqtaz")
let aScanner = NSScanner(string: str)
aScanner.charactersToBeSkipped = whitespaceAndPunctuationSet

while aScanner.atEnd == false
{
var testString:NSString?

aScanner.scanUpToCharactersFromSet(characterSet, intoString: &testString)

aScanner.scanCharactersFromSet(characterSet, intoString: nil)

print(testString)
}

最佳答案

好吧,这似乎有效:

import UIKit

let whitespaceAndPunctuationSet = NSMutableCharacterSet.whitespaceAndNewlineCharacterSet()
whitespaceAndPunctuationSet.formUnionWithCharacterSet(NSCharacterSet.punctuationCharacterSet())


var str = "m 186.14021,456.15955 3.19716,8.75681 c 1.78393,0.93528 30.33822,25.2032 27.48643,47.35972 -4.11654,31.98273 -39.24645,39.28157 -59.94003,28.99354 -20.69358,-10.28804 -17.12572,-56.58417 -14.98501,-58.45472 2.14072,-1.87055 24.97501,-80.4337 44.24145,-26.65535 z"
let characterSet = NSCharacterSet(charactersInString: "mlhvcsqtaz")
let aScanner = NSScanner(string: str)
aScanner.charactersToBeSkipped = whitespaceAndPunctuationSet

while aScanner.atEnd == false
{
var testString:NSString?
var controlChar:NSString?

aScanner.scanCharactersFromSet(characterSet, intoString: &controlChar)

aScanner.scanUpToCharactersFromSet(characterSet, intoString: &testString)

print(controlChar)
print(testString)
}

关于Swift NSScanner 不返回起始字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32666465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com