/ / Como dividir um valor de string usando o símbolo de pipe como separador? - java, regex

Como dividir um valor de string usando o símbolo de pipe como separador? - java, regex

Eu preciso dividir uma string usando o símbolo de pipe "|"

Neste cenário, posso dividir o valor da string, mas se eu tem um "número de marcador" maior que (0-9), imprime apenas o primeiro dígito do número.

Exemplo: se a entrada for 11. Welcome to java programming Vai imprimir 1 Welcome to java programming

Este é o meu código até agora

public static void main(String[] args) {

String split_vls = "11. Welcome1. to java programming |1. Oops concepts |12. Encapsulation |3.Abstraction  |14.Inheritance  |5.Polymorphism";
String[] Numeric_split = split_vls.split("\|*(\d+\.)\s*");
for (String pipes_Split : Numeric_split) {
System.out.println(pipes_Split);
}
}

Esta é a saída que recebo:

para programação java Ops conceitos Encapsulamento Abstração
Herança
Polimórfico

Esta é a saída esperada:

Bem-vindo à programação java
Ops conceitos
Encapsulamento
Abstração
Herança
Polimórfico

Respostas:

3 para resposta № 1

O problema é que sua expressão leva exatamente um "caractere de palavra" entre | e .. Você precisa permitir "um ou mais":

String[] Numeric_split = split_vls.split("\|*(\w+\.)\s*");
//                                                ^

Demo


0 para resposta № 2

Você receberá os valores que você tem na sua string.

Sua corda:

String split_vls = "11. Welcome to java programming |1. Oops concepts |12. Encapsulation |3.Abstraction  |14.Inheritance  |5.Polymorphism";

Tente isto:

StringTokenizer st= new StringTokenizer(split_vls, "|");
while (st.hasMoreElements()) {
System.out.println(st.nextToken());
}

Saída:

11. Bem-vindo à programação java
1. Oops conceitos
12. Encapsulamento
3.Abstração
14. herança
5.Polimorfismo

ou:

String[] Numeric_split = split_vls.split("\|*(\w+\.)\s*");
for (String pipes_Split : Numeric_split) {
System.out.println(pipes_Split);
}

Saída:

Bem-vindo à programação java
Ops conceitos
Encapsulamento
Abstração
Herança
Polimorfismo