Gracias por sus respuestas le agregé el asterisco *** a la expresión regular y funcionó como deberia ser =), ahora me falta hacer lo que dice Fuzzylog decirle que si encuentra esos simbolos los remplace con un espacio....aunque remplace el código pues me parecio bien esa lódgica desde un inicio dividir la linea tanto por espacios como por simbolos raros. De modo que vi que el metodo .split() recibe una expresion regular, solo tengo que poner alli una expresion regular que detecte los simbolos raros y los espacios.
Segun leí es asi no?
^[A-Za-z_0-9]*
solo que como agrego el espacio " " a la expresion regular?
Código PHP:
linea = "M_var*Dim_3_2-51 otra palabra";
String[] palabras = linea.split("^[A-Za-z_0-9]*");
for(int i=0; i<palabras.length; i++) {
System.out.println(palabras[i]);
}
Y así como tengo el código la salida es la siguiente:
*Dim_3_2-51 otra palabra
porque no reconoce la expresion regular?, o como se representa la negacion de una expresion regular y como se representa el espacio en blanco en una expresion regular??
*****EDITO******
Me respondo a mi mismo la expresion regular para que la cache debe tener la negacion dentro de los corchetes de manera que queda asi
[^A-Za-z_0-9] el metodo queda asi:
Código PHP:
public String limpiarLinea(String linea) {
String limpia = "";
String[] palabras = linea.split("[^A-Za-z_0-9]");
int i = 0;
for(i=0; i<palabras.length; i++) {
limpia = limpia + palabras[i] + " ";
}
return limpia;
}
Y hasta este momento entiendo lo que me decia Fuzzylog pues con el replaceAll se hace exactamente lo mismo, no había necesidad de hacer el metodo.
Código PHP:
String cadenalimpia = cadenasucia.replaceAll("[^A-Za-z_0-9]", " ");
En si el problema esta en que no se armar expresiones regulares, pero bueno ganando experiencia poco a poco.
Gracias a todos por su ayuda =)
Si quieren saber más sobre el tema tambien esta el java identifier les dejo un link
http://www.exampledepot.com/egs/java.lang/IsJavaId.html (si esta prohibido poner links notifcarme y lo borro =))