Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何查找和替换字符串中的符号?_Iphone_Objective C_Cocoa Touch_String - Fatal编程技术网

Iphone 如何查找和替换字符串中的符号?

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 = [

我知道这一定是一件非常简单的事情,但我以前从未处理过字符串(在Objective-C中),显然Cocoa Touch上没有RegEx

那么情况是:

  • 我有一个文本字段来获取值(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。但已经成功做到了。谢谢你!