2011-12-18 17 views
9

Voglio dividere la seguente stringa "Good^Evening" ho usato l'opzione split non è diviso il valore. mi aiuti per favore.Come dividere la stringa usando '^' questo carattere speciale in java?

Questo è quello che ho cercato:

String Val = "Good^Evening"; 
String[] valArray = Val.Split("^"); 
+1

prego ci mostra il codice che non ha funzionato. –

+0

String Val = "Good^Evening"; String [] valArray = Val.Split ("^"); –

+0

@ManoharKulanthaivel Grazie, ma per favore modifica la tua domanda con quella in modo che sia facile fare riferimento. – Bryan

risposta

30

Sto assumendo che hai fatto qualcosa di simile:

String[] parts = str.split("^"); 

che non funziona perché l'argomento per split è in realtà un regular expression, dove ^ ha un significato speciale. Prova a modificare:

String[] parts = str.split("\\^"); 

Il \\ è davvero equivalente a un singolo \ (il primo \ è richiesta come una sequenza di escape Java in stringhe letterali). È quindi un personaggio speciale nelle espressioni regolari che significa "usa il prossimo personaggio letteralmente, non interpretare il suo significato speciale".

7

La regex si dovrebbe usare è "\ ^", che si scrive come "\\^" come Java String letterale; vale a dire

String[] parts = "Good^Evening".split("\\^"); 

La regex ha bisogno di una fuga '\', perché il carattere di inserimento ('^') è una meta-personaggio nella lingua regex. La seconda "\" escape è necessaria perché "\" è una escape in un letterale String.

0

provare questo

String str = "Good^Evening"; 
String newStr = str.replaceAll("[^]+", ""); 
Problemi correlati