Удаление символов новой строки от NSString

Это - определенно больше тест, а не настоящая проблема. Однако, если нам разрешают сделать некоторое предположение, оно может быть решено в O (1) время. Чтобы сделать это, резкая критика, на которую указывает список, должна быть copyable. Алгоритм как следующее:

у Нас есть сходство со списка:...-> Узел (i-1)-> Узел (i)-> Узел (i+1)->... и мы должны удалить Узел (i).

  1. данные Копии (не указатель, сами данные) от Узла (i+1) к Узлу (i), список будет похож:...-> Узел (i-1)-> Узел (i+1)-> Узел (i+1)->...
  2. Копия NEXT второго Узла (i+1) во временную переменную.
  3. Теперь Удаляют второй Узел (i+1), он не требует указателя на предыдущий узел.

Псевдокод:

void delete_node(Node* pNode)
{
    pNode->Data = pNode->Next->Data;  // Assume that SData::operator=(SData&) exists.
    Node* pTemp = pNode->Next->Next;
    delete(pNode->Next);
    pNode->Next = pTemp;
}

Mike.

49
задан Kjuly 18 July 2016 в 22:11
поделиться

3 ответа

Разделите строку на компоненты и соедините их пробелом:

NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];
133
ответ дан 7 November 2019 в 11:11
поделиться

Я использую

[...]
myString = [myString stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
[...]

/ Пол

9
ответ дан 7 November 2019 в 11:11
поделиться


Разделение строки на компоненты и их повторное соединение - очень сложный способ сделать этот. Я тоже использую тот же метод, о котором говорил Пол. Вы можете заменить любые строки. В дополнение к тому, что сказал Пол, вы можете заменить символы новой строки такими пробелами:

myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];
85
ответ дан 7 November 2019 в 11:11
поделиться