/ / Nielegalne powtarzanie - java, string

Nielegalne powtarzanie - java, string

String[] parts = pptValue.split("{");

W moim pptValue:

pptValue = EnvWDI {env} {client}

Mój błąd:

Caught: java.util.regex.PatternSyntaxException: Illegal repetition
{
java.util.regex.PatternSyntaxException: Illegal repetition
{
at java_lang_String$split.call(Unknown Source)

Dzięki.

Odpowiedzi:

2 dla odpowiedzi № 1

Myślę, że musisz uciec przed kręconymi klamrami, jak w "\{".

Spójrz na dokumenty dla Pattern, w sekcji o ucieczce postaci. Za zasłonami, split używa Pattern.


3 dla odpowiedzi № 2

Charakter { ma specjalne znaczenie w przypadku użycia w Wyrażenie regularne.

Ciąg przekazywany do String.split jest parsowany jako wyrażenie regularne i będziesz musiał unikać znaków o specjalnym znaczeniu, np. "\{".

The ukośny znak służy do unikania znaków specjalnych. Jako ma specjalne znaczenie samo w łańcuchach, musi również zostać usunięte, stąd podwójny ukośnik odwrotny.


1 dla odpowiedzi nr 3

Musisz uciec { ponieważ służy do ilościowego określenia powtórzenia, spróbuj:

public static void main(String[] args) {
String pptValue = "foo{bar";
String[] parts = pptValue.split("\{");
System.out.println(parts.length);
for (int i = 0; i < parts.length; i++){
System.out.println(parts[i]);
}
}