/ / Count Delimiter w łańcuchu w Javie - java

Count Delimiter w łańcuchu w Javie - java

Mam ciąg w Javie.

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

chcę zliczać ogranicznik powyżej napisu. Pomóż mi, jak liczyć i chcę tylko zaczynać od wartości 7 ograniczników.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz podzielić za pomocą | postać.

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 dla odpowiedzi nr 2

Możesz go rozwiązać za pomocą wyrażeń regularnych, używając klas Pattern i 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));
}

Aby zrozumieć powyższy kod, spójrz na wyrażenia regularne, np. http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html


1 dla odpowiedzi nr 3

W przypadku, jeśli twój ciąg wejściowy, jeśli sthg jak to: -

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

posiadające puste wartości między ogranicznikami. Następnie możesz przejść do innej wersji split funkcjonować.

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

Musisz podać -1 jako drugi argument, aby podzielić, w przeciwnym razie usuwa puste ciągi.