基本上我正在做一些看起来像手机应用程序键盘的东西。其他所有东西都按照它应该输入,但是我想弄清楚的是当最后一个输入1时,如果最后一个输入该数字将看起来像1(555)555-5555。我确定我的代码需要对substringfromindexes进行一些调整以使其匹配,但我现在想要发生的只是检查输入的字符串第一个数字是否为1。因为如果不是,它将绕过这部分代码。
else if ([self.self.enteredPhoneNumberString length] == 11 && [self.enteredPhoneNumberString characterAtIndex:0] == '1') {
NSString *firstNum = [self.enteredPhoneNumberString substringToIndex:1];
NSString *createFirst = [self.enteredPhoneNumberString substringFromIndex:3];
NSString *firstThree = [createFirst substringToIndex:3];
NSString *createSecond = [self.enteredPhoneNumberString substringFromIndex:3];
NSString *secondThree = [createSecond substringToIndex:3];
NSString *lastSet = [self.enteredPhoneNumberString substringFromIndex:6];
self.label.text = [NSString stringWithFormat:@"%@ (%@) %@-%@", firstNum, firstThree, secondThree, lastSet];
}
如果你知道调整substrinFromIndex以获得效果的方法,我也会采取一切措施,这将节省我的时间篡改,直到我找到正确的顺序。在此先感谢您的帮助。 :)
哦,顺便说一下上面的代码,当我到达代码中的这一部分时,它做了一个断点。
FIX:
感谢您现在所有的帮助。结束这样做,由于某种原因断点在这里完成时不会发生。
else if ([self.self.enteredPhoneNumberString length] >= 11 ) {
if ([self.enteredPhoneNumberString characterAtIndex:0] == '1' && [self.self.enteredPhoneNumberString length] == 11) {
NSString *firstNum = [self.enteredPhoneNumberString substringToIndex:1];
NSString *createFirst = [self.enteredPhoneNumberString substringFromIndex:1];
NSString *firstThree = [createFirst substringToIndex:3];
NSString *createSecond = [self.enteredPhoneNumberString substringFromIndex:4];
NSString *secondThree = [createSecond substringToIndex:3];
NSString *lastSet = [self.enteredPhoneNumberString substringFromIndex:7];
self.label.text = [NSString stringWithFormat:@"%@ (%@) %@-%@", firstNum, firstThree, secondThree, lastSet];
}
else{
self.label.text = [NSString stringWithFormat:@"%@", enteredPhoneNumberString];
}
}
而且,检查长度是否再次为11似乎毫无意义,但因为它导致了前一种方式的问题,所以我没有多少选择,因为我需要知道它是否超过11或者不是这样它可以开始做那个。
答案 0 :(得分:2)
上面的if语句可能是你的代码启动的真实...
else if ([self.self.enteredPhoneNumberString length] == 11 && [self.enteredPhoneNumberString characterAtIndex:0] == '1') {
需要一些清理工作。你不应该在这里检查长度11,只检查长度> 0和第一个字符是否为1.执行必要的格式化,修剪空格和(),然后检查长度。
此外,self.self
是一个潜在的问题,放弃第二个自我
请忽略CocoaFu的评论他的解决方案更好,但评论有误导性。
在以下代码中,我的日志语句显示在控制台中
NSString * test = [NSString stringWithString:@"test"];
unichar c = [adjusted characterAtIndex:0];
if (c == 't') {
NSLog(@"can compare char");
}
答案 1 :(得分:0)
if [[self.enteredPhoneNumberString substringToIndex:1] isEqualToString:@"1"] {
}
我认为这就是你要求的......
答案 2 :(得分:0)
第一个字符最简单的比较:
[self.enteredPhoneNumberString hasPrefix:@"1"]