Удалить последний символ NSString

У меня есть некоторые проблемы, если вы пытаетесь удалить последний символ NSString. Я новичок в Objective-C, и я понятия не имею, как это сделать.

Не могли бы вы, ребята, зажечь меня?

Ответ 1

NSString *newString = [oldString substringToIndex:[oldString length]-1];

Всегда обращайтесь к documentation:


Чтобы включить код, относящийся к вашему делу:

NSString *str = textField.text;
NSString *truncatedString = [str substringToIndex:[str length]-1];

Ответ 2

Попробуйте следующее:

s = [s substringToIndex:[s length] - 1];

Ответ 3

NSString *string = [NSString stringWithString:@"ABCDEF"];
NSString *newString = [string substringToIndex:[string length]-1];
NSLog(@"%@",newString);

Вы можете видеть = ABCDE

Ответ 4

NSString = *string = @"abcdef";

string = [string substringToIndex:string.length-(string.length>0)];

Если есть символ для удаления (т.е. длина строки больше 0)     (string.length>0) возвращает 1, что возвращает код:

 string = [string substringToIndex:string.length-1]; 

Если нет символа для удаления (т.е. длина строки НЕ больше 0)     (string.length>0) возвращает 0, что возвращает код:

string = [string substringToIndex:string.length-0]; 

который предотвращает сбои.

Ответ 5

Этот код просто вернет последний символ строки и не удалит его:

NSString *newString = [oldString substringToIndex:[oldString length]-1];

вы можете использовать это вместо удалить последний символ и сохранить оставшиеся значения строки:

str = [str substringWithRange:NSMakeRange(0,[str length] - 1)];

а также использование substringToIndex для NSString с 0 длиной приведет к сбоям.

вы должны добавить подтверждение перед тем, как это сделать:

if ([str length] > 0) {

   str = [str substringToIndex:[s length] - 1];

}

с этим, безопасно использовать метод подстроки.

ПРИМЕЧАНИЕ. Apple отклонит ваше приложение, если оно уязвимо для сбоев.

Ответ 6

Этот приятный маленький код, который я нашел случайно, и я еще не видел его предложенным на Stack.

Он работает только в том случае, если символы, которые вы хотите удалить или изменить, существуют, что удобно во многих сценариях. Если символ /s не существует, он не изменит ваш NSString:

NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];

Вот как я его использую:

//declare what to look for
NSString * suffixTorRemove = @"</p>";
NSString * prefixToRemove = @"<p>";
NSString * randomCharacter = @"</strong>";
NSString * moreRandom = @"<strong>";
NSString * makeAndSign = @"&";

//I AM INSERTING A VALUE FROM A DATABASE AND HAVE ASSIGNED IT TO returnStr
returnStr = [returnStr stringByReplacingOccurrencesOfString:suffixTorRemove withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:prefixToRemove withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:randomCharacter withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:moreRandom withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:makeAndSign withString:@"&"];

//check the output
NSLog(@"returnStr IS NOW: %@", returnStr);

Эта одна строка очень проста для выполнения трех действий в одном:

  • Проверяет вашу строку для символов, которые вы хотите найти
  • Можно заменить или изменить их с помощью любых
  • Не влияет на окружающий код

Это похоже на поиск слов, кроме iOS

Ответ 7

Простой и лучший подход

[mutableString deleteCharactersInRange:NSMakeRange([myRequestString length]-1, 1)];