Как добавить пробелы между числом и словом в строке в Java? - PullRequest
2 голосов
/ 12 января 2012

У меня есть много строк, которые также содержат такие числа, как: LOD140IXAL COMP 1X240GG

Я бы хотел поставить пробел между цифрами и словом, если их нет. число может быть где угодно в строке.

Ответы [ 2 ]

8 голосов
/ 12 января 2012

Один из способов сделать это - использовать регулярные выражения. Замена следующего монстра с одним пробелом должна помочь:

"(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])"

Применительно к вашему примеру (LOD140IXAL COMP 1X240GG) выдает LODIXAL COMP 1 X 240 MG.

В двух словах, регулярное выражение ищет букву, за которой сразу следует цифра, или цифру, за которой сразу следует буква, и вставляет пробел между ними. Для достижения этого используются утверждения нулевой ширины (взгляд вперед и взгляд назад) .

3 голосов
/ 12 января 2012

Я думаю, вы хотите что-то вроде

myString.replaceAll( "(\\d)([A-Za-z])", "$1 $2" );
...