Iphone 如何查找和替换字符串中的符号?
我知道这一定是一件非常简单的事情,但我以前从未处理过字符串(在Objective-C中),显然Cocoa Touch上没有RegEx 那么情况是:Iphone 如何查找和替换字符串中的符号?,iphone,objective-c,cocoa-touch,string,Iphone,Objective C,Cocoa Touch,String,我知道这一定是一件非常简单的事情,但我以前从未处理过字符串(在Objective-C中),显然Cocoa Touch上没有RegEx 那么情况是: 我有一个文本字段来获取值(money,例如32.10) 问题是: 如果用户键入@、/、#等符号,我的应用程序将崩溃 问题:如果有符号,我如何处理此字符串以删除符号?我知道您正在试图找出UITextFields的text属性中包含的数字,并将其分配给浮点变量 尝试为此使用NSScanner: NSScanner* textScanner = [
- 我有一个文本字段来获取值(money,例如32.10)
- 如果用户键入@、/、#等符号,我的应用程序将崩溃李>
问题:如果有符号,我如何处理此字符串以删除符号?我知道您正在试图找出UITextFields的
text
属性中包含的数字,并将其分配给浮点变量
尝试为此使用NSScanner:
NSScanner* textScanner = [NSScanner localizedScannerWithString:textfield.text];
float* floatValue;
[textScanner scanFloat:&floatValue];
floatValue现在包含文本字段的已解析浮点值。我知道您正试图找出UITextFields的
文本属性中包含的数字,并将其分配给浮点变量
尝试为此使用NSScanner:
NSScanner* textScanner = [NSScanner localizedScannerWithString:textfield.text];
float* floatValue;
[textScanner scanFloat:&floatValue];
floatValue现在包含文本字段的已解析浮点值。您可以尝试以下方法:
NSString *s = @"12.827#@584";
NSCharacterSet *removeCharSet = [NSCharacterSet characterSetWithCharactersInString:@"/:@#"];
s = [[s componentsSeparatedByCharactersInSet: removeCharSet] componentsJoinedByString: @""];
NSLog(@"%@", s);
您可以尝试以下方法:
NSString *s = @"12.827#@584";
NSCharacterSet *removeCharSet = [NSCharacterSet characterSetWithCharactersInString:@"/:@#"];
s = [[s componentsSeparatedByCharactersInSet: removeCharSet] componentsJoinedByString: @""];
NSLog(@"%@", s);
你可以在Cocoa Touch中找到regex
这里有一个关于iOS中不同程度的正则表达式能力的很好的讨论,最后的blocks示例应该可以让您了解其中的大部分内容
您确实可以在Cocoa Touch中使用正则表达式
这里有一个关于iOS中不同程度的正则表达式能力的很好的讨论,最后的blocks示例应该可以让您了解其中的大部分内容
好吧,是的,但是如果我键入类似32@3$1"? 我想识别这些符号并将它们从我的字符串中删除,或者至少向用户发送一个通知,说明他无法键入符号。在该字符串中,floatValue将为32.00。NSScanner是从NSString获取数值的最可靠方法。要检查文本字段是否包含非数字字符,请使用[NSNumberFormatter numberFromString:]。如果字符串包含的不仅仅是数字,它将返回零。刚刚测试过,它确实很棒,但是它不会考虑逗号或点,这使得整个浮动的东西毫无意义(字面意思)。22.10将被解读为22.00好吧,是的,但是如果我键入类似的内容呢32@3$1"? 我想识别这些符号并将它们从我的字符串中删除,或者至少向用户发送一个通知,说明他无法键入符号。在该字符串中,floatValue将为32.00。NSScanner是从NSString获取数值的最可靠方法。要检查文本字段是否包含非数字字符,请使用[NSNumberFormatter numberFromString:]。如果字符串包含的不仅仅是数字,它将返回零。刚刚测试过,它确实很棒,但是它不会考虑逗号或点,这使得整个浮动的东西毫无意义(字面意思)。例如:22.10将被解读为22.00您的目标是什么版本的iOS?在3.2和4中,你会得到越来越好的选择。我正在使用4。但已经成功做到了。谢谢你!你的目标是什么版本的iOS?在3.2和4中,你会得到越来越好的选择。我正在使用4。但已经成功做到了。谢谢你!