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 に答える