对于更多的上下文,我试图在游戏中分离一条线,即形式
<character name> : <line>
进入角色的名字和线条.我假设角色的名字中没有冒号,所以我想在该行的第一个冒号处拆分,这样如果文本中有任何冒号我就不会将该行的文本拆分成碎片.
所以,我的第一个问题:为什么不使用’componentsSeparatedByString’在以下代码中有效:(以下代码不是我之前提到的情况,但它是我想要修复并保留的东西,所以我想使用它而不是冒号破坏代码.)
var fileRoot = NSBundle.mainBundle().pathForResource("LonelyImpulse",ofType: "txt") var contents = Nsstring(contentsOffile:fileRoot!,enCoding: NSUTF8StringEnCoding,error: nil)! let stringArray = contents.componentSeparatedByString("\n")
而我的第二个:我怎样才能在冒号(:)字符的第一个匹配中拆分字符串,而不是沿着所有匹配?
解决方法 首先它只是一个拼写错误,而不是componentSeparatedByString,而是componentsSeparatedByString
let stringArray = contents.componentsSeparatedByString("\n")// ^
第二
你可以使用内置的split函数来指定maxSplit:
let str:Nsstring = "test:foo:bar"let result = split(str as String,{let result:[Nsstring] = split(string as String,allowEmptySlices: true)// ^^^^^^^^^^^== ":" },maxSplit: 1,allowEmptySlices: true)// -> ["test","foo:bar"]
请注意,结果的类型是[String].如果你想要[Nsstring],只需投射它:
总结以上是内存溢出为你收集整理的ios – 在角色的第一场比赛中Swift分裂字符串全部内容,希望文章能够帮你解决ios – 在角色的第一场比赛中Swift分裂字符串所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)