String.split (), чтобы отделять в месте, но без remplazar место

Я считаю String следующим:

String foo = "soy un texto" 

Применив следующую функцию:

String []  bar = foo. split(" ");

Он это отделяет в трех текстах:

"soy", "un" y "texto" 

Однако, я хочу, чтобы я поддержал место как следующий пример:

"soy",  " un"  y " texto" 

Как я могу делать это?

5
задан 20.01.2017, 02:24
0 ответов

Со спецификациями, осветленный regex, который ты можешь использовать в split он:

String foo = "Soy un texto";
String[] bar = foo.split("(?=\\s)");
for (String foobar : bar ){
    System.out.println(String.format("<%s>", foobar));
}

(?=X) он делает тебе матч мест, продолженных местом, не тратя символов.

Результат:

<Soy>
< un>
< texto> 
6
ответ дан 03.12.2019, 17:38
  • 1
    Стой доводить до сведения, что \s встречается с [ \t\n\r\f], и если só хотят, что он совпал с местом, serí в с местом как буквальный внутри inspecció n позитив : (?= ) –  20.01.2017, 02:44

Мы можем добавлять элемент, который будет служить нам как идентификатор для того, чтобы сделать split например:

String foo = "soy un texto";

foo = foo.replace(" ", "☺ ");//remplazamos por un caracter que no tenga la cadena
//y dejamos el espacio   ^ en blanco    
String []  bar = foo.split("☺");//y despues usamos el caracter

Это дает

"soy"
" un"
" texto"

Если мы хотим место в правую сторону, мы меняем наш remplace из-за .replace(" ", " -")

Что дал бы:

"soy "
"un "
"texto"
4
ответ дан 03.12.2019, 17:38
  • 1
    Serí в проблему, если текст содержит algú n -. Конечно, podrí чтобы менять на другой (s) характер он (), но всегда habrí в случай, что harí чтобы не удаваться. –  20.01.2017, 02:27
  • 2
    @Mariano мы Могли бы менять характер - он - comú n из-за гораздо менее общих . Или добавлять patró n ☺-☺-☺ –  20.01.2017, 17:43

можешь добавлять это ты сами, сделав split

for(int i = 0;i < bar.length; i++) {
    if(i != 0) { //para que no se lo agregue al primer split
        bar[i] = " " + bar[i];
    }
}
2
ответ дан 03.12.2019, 17:38
  • 1
    Вместо того, чтобы проверять i != 0, ¿ не convendrí чтобы инициализировать for с int i = 1? –  20.01.2017, 02:28

Теги

Похожие вопросы