0

我正在尝试做一些事情,characterAtIndex但我很难过。 if ([myString characterAtIndex:0]==0)工作正常,如果我正在寻找数字零 - 但如果我正在寻找小数点,if ([myString characterAtIndex:0]==.)只会给我一个错误。还有另一种方法可以做到这一点吗?

4

3 回答 3

3

也许有些东西在翻译中丢失了,但看看你当前的问题,我认为这就是解决方案的样子(按我的预期编译和执行):

if([myString characterAtIndex:0] == '.') {
  // ...
}

请注意,您必须使用单引号(撇号),因为这些是 c 样式的字符项(技术上为整数)而不是 c 样式的字符串(将使用双引号,技术上是数组/指针)

于 2012-08-06T00:51:12.323 回答
3

再检查一遍。[myString characterAtIndex:0] == 0编译,但它不会做你所期望的。该条件测试字符串的第一个字符是否是 ASCII 值为 0 的字符,而不是数字 0:它是 NUL 字符。

-characterAtIndex:返回一个可以与字符文字进行比较的值,字符文字是用单引号括起来的字符:'0''.',例如。

于 2012-08-06T00:51:42.677 回答
2

characterAtIndex 返回一个 unichar 字符,所以使用 '.' 反而。

IE: if ([myString characterAtIndex:0]=='.')

于 2012-08-06T00:50:29.703 回答