0

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

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

我的代码是:

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

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

知道我做错了什么吗?

非常感谢,亚历克斯

4

3 回答 3

2

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

if ([currentDisplay characterAtIndex:currentDisplay.length - 1] == '.') ....
于 2013-02-02T14:16:02.043 回答
1

这应该可以帮助您:

BOOL flagIfDotIsDeleted = NO;
unichar leftmostChar = [currentDisplay characterAtIndex: currentDisplay.length - 1];
if (leftmostChar == '.')
{
    flagIfDotIsDeleted = YES;
    currentDisplay = [currentDisplay substringToIndex: currentDisplay.length - 2];
}
于 2013-02-02T14:53:40.243 回答
1

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

if([currentDisplay hasSuffix:@"."])
于 2013-02-02T15:47:48.913 回答