Как мне разбить текстовую строку на двухбуквенные фрагменты и преобразовать эти фрагменты в четырехзначные числа в Objective-C?

#objective-c

#objective-c

Вопрос:

Я хочу создать простую программу для моего класса теории чисел. Мы изучаем шифрование.

Основное шифрование, которое я хочу продемонстрировать, продемонстрировано в этом примере:

Возьмите фразу «БЕРЕГИ СЕБЯ»

как

TA KE -C AR E-

где TA преобразуется в 2001, потому что T — это 20-я буква в алфавите, а A — первая.

Ответ №1:

Что ж, поскольку вы, похоже, ограничиваетесь ASCII, тогда вам должно быть удобно использовать -UTF8String of строки:

 NSString *source = @"TAKE CARE";
source = [source lowercaseString]; //normalize the capitalization
const char *characters = [source UTF8String];
for (NSUInteger i = 0; i < [source length];   i) {
  const char character = characters[i];
  if (character >= 'a' amp;amp; character <= 'z') {
    int positionInAlphabet = character - 'a'   1; // this means "a" is "1"
    NSLog(@"%c = %d", character, positionInAlphabet);
  } else {
    NSLog(@"non-letter: %c", character);
  }
}
  

Комментарии:

1. вопросы: 1) у меня есть текстовое поле для ввода в текстовую строку, и я хочу перенести его в исходный код NSString *. я когда-либо видел NSString только с записанной строкой, есть ли другой тип строки для извлечения данных из окна? 2) куда выполняется печать NSLog? я хочу, чтобы четырехзначная строка чисел была преобразована в целое число, а не просто распечатана, чтобы я мог выполнять с ними математические вычисления.

2. Я понял это … 1) Я заменил @»Take Care» на [messsage stringValue] и 2) он выводится в окно консоли, но для фактического размещения текста в поле мне нужно вызвать [answerField setStringValue]