Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.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
Ios NSString检测数字然后插入括号_Ios_Ipad_Nsstring_Formatting_Calculator - Fatal编程技术网

Ios NSString检测数字然后插入括号

Ios NSString检测数字然后插入括号,ios,ipad,nsstring,formatting,calculator,Ios,Ipad,Nsstring,Formatting,Calculator,我正在制作一个iOS计算器应用程序。我希望能够在字符串中找到相邻的数字字符和括号,如以下示例所示: 23(8+9) (89+2)(78) (7+8)9 我希望能够在这些事件之间插入一个字符: 23(8+9)将23*(8+9) (89+2)(78)将是(89+2)*(78) (7+8)9将是(7+8)*9 这里是我编写的一个快速函数,它使用正则表达式查找匹配模式,然后在需要的地方插入一个“*”。它可以匹配两个括号(例如“5”(“或”)3,也可以匹配一个数字和括号(例如“5”)。如果中间有空格

我正在制作一个iOS计算器应用程序。我希望能够在字符串中找到相邻的数字字符和括号,如以下示例所示:

  • 23(8+9)
  • (89+2)(78)
  • (7+8)9
我希望能够在这些事件之间插入一个字符:

  • 23(8+9)将23*(8+9)
  • (89+2)(78)将是(89+2)*(78)
  • (7+8)9将是(7+8)*9

这里是我编写的一个快速函数,它使用正则表达式查找匹配模式,然后在需要的地方插入一个“*”。它可以匹配两个括号(例如“5”(“或”)3,也可以匹配一个数字和括号(例如“5”)。如果中间有空格,它也可以工作,例如“5”

请随意调整功能以满足您的需要。不确定这是否是最好的方法,但它是有效的

有关正则表达式的更多信息,请参阅

我就是这样测试的:

NSString *result;

result = [self stringByInsertingMultiplicationSymbolInString:@"23(8+9)"];
NSLog(@"Result: %@", result);

result = [self stringByInsertingMultiplicationSymbolInString:@"(89+2)(78)"];
NSLog(@"Result: %@", result);

result = [self stringByInsertingMultiplicationSymbolInString:@"(7+8)9"];
NSLog(@"Result: %@", result);
这将输出:

Result: 23*(8+9)
Result: (89+2)*(78)
Result: (7+8)*9

注意:此代码使用ARC,因此如果使用MRC,请记住自动释放复制的字符串。

您的第一个示例没有更改表达式的含义吗?似乎是DDMathParser的合适任务。哇!太神了我要用DDMathParser,但你的标记是正确的!
Result: 23*(8+9)
Result: (89+2)*(78)
Result: (7+8)*9