Objective C和substringToIndex。点问题

时间:2013-02-02 14:05:55

标签: objective-c

我是Objective C的新手,我对substringToIndex有一个奇怪的问题。

背景: 代码是从计算器显示中删除最后一个字符的函数的一部分。我需要能够在删除点时标记

我的代码是:

NSString *currentDisplay = self.display.text;
NSString *lastChar = [currentDisplay substringToIndex: 1];
NSLog(@"lastChar -->%@<--",lastChar);

问题是: Variable currentDisplay是一个数值,例如“123.45”。当。。。的时候 ”。” (点)是要删除的字符,因此变量lastChar应为“。”,日志显示一个随机数,通常是最后一个被删除的字符。

知道我做错了吗?

非常感谢, 亚历

3 个答案:

答案 0 :(得分:2)

如果您想判断最后一个字符是否为“点”,请使用

if ([currentDisplay characterAtIndex:currentDisplay.length - 1] == '.') ....

答案 1 :(得分:1)

这可以帮到你:

BOOL flagIfDotIsDeleted = NO;
unichar leftmostChar = [currentDisplay characterAtIndex: currentDisplay.length - 1];
if (leftmostChar == '.')
{
    flagIfDotIsDeleted = YES;
    currentDisplay = [currentDisplay substringToIndex: currentDisplay.length - 2];
}

答案 2 :(得分:1)

这更简单,如果你想知道最后一个字符是否是一个点......

if([currentDisplay hasSuffix:@"."])