Удалить из строки все пробелы

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Если надо удалить из строки пробелы, обычно используют функции Trim:

  • Trim — удаление пробелов в начале строки и в конце
  • TrimLeft — удаление пробела в начале строки
  • TrimRight — удаление пробелов в конце строки

var

s: string;

begin

s := '  1234567  ';

ShowMessage(Trim(s)); // s = '1234567'

ShowMessage(TrimLeft(s)); // s = '1234567  '

ShowMessage(TrimRight(s)); // s = '  1234567'

end;

Но бывают ситуации когда данные функции бесполезны, например пробел находится в середине строки и их несколько

s1 := ‘1 234’;

s2 := ‘1 234 567’;

Удаление пробелов в середине строки

Для таких случаев можно воспользоваться StringReplace или AnsiReplaceStr


var

s: string;

begin

s := '1 234 567';

s := StringReplace(s , ' ','', [rfReplaceAll, rfIgnoreCase]);

end;

А тут начинается самое интересное, вы вроде задали старое значение и новое, но замена пробела так и не сработала, почему?

Да потому что код символа пробела другой. Тогда как определить код символа пробела и удалить его?

В моем случае код символа пробела был 160, я него определил через ord.


var

s: string;

begin

s := '1 234 567';

s := StringReplace(s, Chr(160), '', [rfReplaceAll, rfIgnoreCase]);

end;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *