2011-11-15 25 views
11

Come dividere una stringa utilizzando [ come delimitatore?Divisione utilizzando una staffa

String line = "blah, blah [ tweet, tweet"; 

se faccio

line.split("["); 

ottengo un errore

Exception in thread "main" java.util.regex.PatternSyntaxException: classe di caratteri Unclosed vicino indice 1 [

Qualsiasi aiuto?

risposta

32

Il [ è un char riservata in regex, è necessario sfuggire,

line.split("\\["); 
4

Basta sfuggire esso:

line.split("\\["); 

[ è un metacarattere speciale in regex che deve essere sfuggito, se non all'interno di una classe di caratteri, come nel tuo caso.

2

Si prega di utilizzare "\\[" invece di "[".

3

Il metodo split funziona utilizzando le espressioni regolari. Il carattere [ ha un significato speciale in quelli; è usato per denotare classi di caratteri tra [ e ]. Se si desidera utilizzare una parentesi quadra di apertura letterale, utilizzare \\[ per scappare come carattere speciale. Esistono due barre in quanto una barra rovesciata viene anche utilizzata come carattere di escape nei valori letterali delle stringhe Java. Può ottenere un po 'di confusione digitando le espressioni regolari nel codice Java.

2

Il carattere [ viene interpretato come un carattere speciale regex, quindi bisogna uscirne:

line.split("\\[");

Problemi correlati