【问题标题】:How to get an ascii value of a NSString*, pointing to a character?如何获取指向字符的 NSString* 的 ascii 值?
【发布时间】:2011-09-22 10:12:59
【问题描述】:

当出现@"a" 时,我希望能够得到它的 ascii 值 97。

我以为这样就可以了

NSString *c = [[NSString alloc] initWithString:@"a"];
NSLog(@"%d", [c intValue]); // Prints 0, expected 97

但是......你猜到了(或者知道它:))..它没有。

如何获取 NSString* 的 ascii 值,指向单个字符?

【问题讨论】:

  • 请注意,这里的“ascii”有点用词不当,因为 NSString 可以保存 unicode 字符。不要假设[str characterAtIndex:0] 的结果会在 0-255 范围内。

标签: objective-c


【解决方案1】:
NSString *str = @"a";
unichar chr = [str characterAtIndex:0];
NSLog(@"ascii value %d", chr);

为什么你的方法不起作用是因为你在一个STRING上操作还记得吗?没有一个字符。它仍然是一个 NSString。

【讨论】:

    【解决方案2】:
    NSLog(@"%d",[c characterAtIndex:0]);
    

    NSString class reference:接收方文本的整数值,假设为十进制表示并跳过字符串开头的空格。溢出时返回 INT_MAX 或 INT_MIN。 如果接收者不是以数字的有效十进制文本表示开始,则返回 0

    所以它返回 0,因为您在数字的无效十进制文本表示上调用了 intValue。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 2023-04-04
      相关资源
      最近更新 更多