2013-10-03 6 views
0

Я только что обновился до ios 7 sdk, и я хотел бы обрезать/заменить пробел между символами строки, посредством которой номера вынимаются из ABAddressBook.Обрезать пробелы между символами

Я попытался использовать замену «» на «» ниже, но этот код, похоже, не работает в ios7 sdk, он отлично работает в ios 6 sdk.

NSString *TrimmedNumberField = [self.numberField.text 
stringByReplacingOccurrencesOfString:@" " withString:@""]; 

Есть ли какой-либо другой способ, которым я мог бы это сделать в IOS 7?

EDIT:

Это тип номера телефона, который я пытаюсь.

Вход: "+65 12 345 6789"

Выход я получил от NSLog является " 12 345 6789"

я понял, что когда я добавил в NSDictionary и просмотреть его в NSLog, оказывается, что он содержит кодовое представление UniX из \ u00a0 который похож на «точку посередине», которая не равна полной скорости.

благодарит заранее.

+1

Я не могу проверить это на данный момент, но я не понимаю, почему это должно работать по-разному в iOS 6 и iOS 7. Пожалуйста, укажите конкретный пример входной строки, фактического вывода и ожидаемого вывода. –

+0

@MartinR Я добавил вход и выход, полученные из NSLog. – munfai

+3

У меня нет доступа к Mac в данный момент, и поэтому я не могу проверить какой-либо код Objective-C, но мне действительно интересно, как ваш код должен преобразовать «+65 12 345 6789» в «12 345 6789». –

ответ

1

Найдено ответ от here

phoneNumber = [phoneNumber stringByReplacingOccurencesOfString:@"." withString:@""]; 

// где @ "" была создана путем ввода Option + Пробел

Число извлекается из ABAddressbook.

-2

Try This

[yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

whitespaceCharacterSet Apple, документация для прошивки говорит

Возвращает объект NSData, кодирующий приемник в двоичном формате.

  • (NSData *) bitmapRepresentation Возвращаемое значение Объект NSData, кодирующий приемник в двоичном формате.

Обсуждение Этот формат предназначен для сохранения в файл или иным способом передачи или архивирования.

Необработанное представление растрового изображения набора символов является байтовым массивом из 2^16 бит (то есть 8192 байта). Значение бит в позиции n представляет наличие в наборе символов символа с десятичным значением Unicode n.Для того, чтобы проверить на наличие символа с десятичной Unicode значения п в качестве исходного растрового представления, использовать выражение, такие как следующие:

Так Try This

NSString *testString = @" Eek! There are leading and trailing spaces "; 
NSString *trimmedString = [testString stringByTrimmingCharactersInSet: 
          [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
+1

Он уже попробовал это! –

+0

stringByTrimmingCharactersInSet удаляет только символы в начале и в конце строки. –

+0

Я думаю, NSArray * words = [yourString componentsSeparatedByCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; NSString * nospacestring = [words componentsJoinedByString: @ ""]; может работать –

-1

Try This:

NSString *str = @" untrimmed string "; 
NSString *trimmed = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
+0

Является ли мой ответ неправильным или вы с ума сошли с ума. – Tushar

+0

Добавить комментарий, почему вы проголосовали за мой ответ, мне нужно знать причину ...? – Tushar

+0

stringByTrimmingCharactersInSet удаляет только символы в начале и в конце строки. –

0

Вы можете перебираем строки и удалить пробелы до тех пор, пока существует какой-либо

NSString *someString = @"A string with multiple spaces and other whitespace."; 

NSMutableString *mutableCopy = [someString mutableCopy]; 

// get first occurance of whitespace 
NSRange range = [mutableCopy rangeOfCharacterFromSet:[NSCharacterSet whitespaceCharacterSet]]; 

// If there is a match for the whitespace ... 
while (range.location != NSNotFound) { 
    // ... delete it 
    [mutableCopy deleteCharactersInRange:range]; 
    // and get the next whitespace 
    range = [mutableCopy rangeOfCharacterFromSet:[NSCharacterSet whitespaceCharacterSet]]; 
} 

// no more whitespace. You can get back to an immutable string 
someString = [mutableCopy copy]; 

Результат строкой выше Astringwithmultiplespacesandotherwhitespace.

Смежные вопросы