2011-12-18 16 views
9

Quiero dividir la siguiente cadena "Good^Evening" usé la opción split, no divide el valor. por favor, ayúdame.Cómo dividir la cadena usando '^' este carácter especial en java?

Esto es lo que he estado intentando:

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

Por favor, nos muestran el código que no funcionó. –

+0

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

+0

@ManoharKulanthaivel Gracias, pero por favor edite su pregunta con eso para que sea fácil hacer referencia. – Bryan

Respuesta

30

Asumo que hiciste algo como:

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

que no funciona porque el argumento de split es en realidad un regular expression, donde ^ tiene un significado especial. Tal vez puedas probar:

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

El \\ es realmente equivalente a un único \ (la primera \ se requiere como una secuencia de escape en literales de cadena de Java). Es entonces un personaje especial en expresiones regulares que significa "usar el siguiente carácter literalmente, no interpretar su significado especial".

7

La expresión regular que debe usar es "\ ^", que se escribe como "\\^" como Java literal de cadena; es decir,

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

La expresión regular necesita un escape '\' debido a que el carácter de intercalación ('^') es un meta-carácter en el lenguaje de expresiones regulares. El segundo escape '\' es necesario porque '\' es un escape en un literal String.

0

probar esto

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