/ / Count Delimiter em uma string em Java - java

Contagem Delimitador em uma string em Java - java

Eu tenho uma string em Java.

1|2|3|4|5|2|2|3|4|123441|234556|67783|56764|55454

eu quero contar um delimitador acima da string. Por favor me ajude em como contar e eu quero apenas começando 7 valor Delimitador.

Respostas:

1 para resposta № 1

Você pode dividir usando | personagem.

public static void main(String[] args) {
String s = "1|2|3|4|5|2|2|3|4|123441|234556|67783|56764|55454";
String[] strArr = s.split("\|");
System.out.println("Array : " + Arrays.toString(strArr));
System.out.println("Delimiter count : " + (strArr.length - 1)); // Prints 13
System.out.println("7th field : " + strArr[7]); // Prints 3
}

1 para resposta № 2

Você pode resolvê-lo com expressões regulares, usando classes Pattern e Matcher:

    String s = "1|2|3|4|5|2|2|3|4|123441|234556|67783|56764|55454";
Pattern p = Pattern.compile("((\d+\|){7}).*");
Matcher m = p.matcher(s);
if (m.matches()) {
System.out.println(m.group(1));
}

Para entender o código acima, dê uma olhada nas expressões regulares, por exemplo, http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html


1 para resposta № 3

No caso, se sua string de entrada se sthg assim: -

1|2|3|4|5|2|2|3|4|123441|234556|||

ter valores vazios entre delimitadores. Então você pode ir com uma versão diferente do split função.

String[] strArr = s.split("\|", -1);

Você precisa passar -1 como o segundo argumento para dividir, caso contrário, ele remove as strings vazias.