Objective-C:查找字符串中的数字
我有一个包含单词和数字的字符串。如何从字符串中提取该数字?
NSString *str = @"This is my string. #1234";
我希望能够将 1234 作为 int 去掉。每次我搜索该字符串时,该字符串都会有不同的数字和单词。
有想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
这是NSScanner 的解决方案:(
其中的一些)此处做出的假设:
int
。或者,您可以直接扫描到
int
:如果
#
标记字符串中数字的开头,您可以通过以下方式找到它:Here's an NSScanner based solution:
(Some of the many) assumptions made here:
int
.Alternatively you could scan direct to the
int
:If the
#
marks the start of the number in the string, you could find it by means of:自包含解决方案:
处理以下情况:
希望这有帮助!
Self contained solution:
Handles the following cases:
Hope this helps!
您可以使用 NSRegularExpression 类,该类自 iOS SDK 4 起可用。
下面是一个简单的代码来提取整数("\d+" 正则表达式模式):
You could use the NSRegularExpression class, available since iOS SDK 4.
Bellow a simple code to extract integer numbers ("\d+" regex pattern) :
尝试 Stack Overflow 上的 这个答案,以获得一段不错的 C 代码可以解决这个问题的代码:
Try this answer from Stack Overflow for a nice piece of C code that will do the trick:
迄今为止最好的解决方案!我认为 regexp 会更好,但我有点 sux ;-) 这会过滤所有数字并将它们连接在一起,形成一个新字符串。如果你想拆分多个数字,请稍微更改一下。请记住,当您在大循环中使用它时,它会降低性能!
By far the best solution! I think regexp would be better, but i kind of sux at it ;-) this filters ALL numbers and concats them together, making a new string. If you want to split multiple numbers change it a bit. And remember that when you use this inside a big loop it costs performance!
用于从字符串中获取数字的 Swift 扩展
Swift extension for getting number from string
NSPredicate 是使用 ICU 正则表达式 解析字符串的 Cocoa 类。
NSPredicate is the Cocoa class for parsing string using ICU regular expression.