Разбить строку и удалить каждый второй пробел в Java - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть данные журнала в необработанном файле.Это выглядит так:

"2 A U W 2 0 1 1 1 1 1 6 0 0 1 0 0 0        U S E R N 1      F T Y 0 0 0 0 0 0 D 9         2 A I L 2 0 1 1 1 1 1 6" 

и т. Д.

Мне нужно подстроковать эту строку в сообщениях равной длины (от «2 AUW» до «4 AIL» 400 байтов).Это сделано String as = s.substring(0,400).toLowerCase().Но этого мне недостаточно.Я хочу сделать сообщение, подобное этому:

2auw 
20011111600100 
usern1 
fty000000d9

Может кто-нибудь помочь с этим?

Ответы [ 3 ]

1 голос
/ 17 ноября 2011

Вы можете добавить обратную косую черту n "\ n", чтобы добавить разрывы строк в вашей строке.

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

String s = as.substring(0,4) + "\n" + as.substring(4,18) + "\n" + //....and so on

Надеюсь, это поможет

1 голос
/ 17 ноября 2011

Это сделает вашу работу.Если у вас много данных, как в приведенной выше строке, нам придется придумать другую логику.Я не думаю, что это подойдет для миллионов записей.

String asd = "2 A U W 2 0 1 1 1 1 1 6 0 0 1 0 0 0        U S E R N 1      F T Y 0 0 0 0 0 0 D 9         2 A I L 2 0 1 1 1 1 1 6";
asd = asd.replaceAll("      ", "\n");
asd= asd.replaceAll(" ", "");
System.out.println(asd);

Обратите внимание, что промежуток между "U S E R N 1" и "F T Y 0 0 0 0 0 0 D 9" имеет минимальное количество одновременных пробелов.Итак, я использовал это количество пробелов для вставки символа новой строки.
Логика приведет к неправильному выводу, если пробел между символами больше, чем в два раза эта строка <6 space>.то есть: будет <12 spaces> непрерывно.
Чтобы решить, что вы можете вставить этот код непосредственно перед печатью.Но используйте его, только если такие данные произойдут.

asd= asd.replaceAll("\n\n", "\n");
0 голосов
/ 17 ноября 2011

Вы пробовали:

String[] split = s.split("\\s+");

Возможно, вам потребуется настроить reg-exp.

...