[JAVA] Salida de un ejecutable

Bueno quiero que la salida de un programa sea a\ b\ \c y no hay manera ya que '\ ' me lo convierte al espacio directamente ¿Alguna sugerencia?
Para imprimir una \ tendrás que poner \\.
cadena.replaceAll(" ", "\\ " );

Si lo hago asi, al mostrarlo se convierte directamente en espacios
Tienes razón, por algún motivo el RemplaceAll se come los '\\'.

Con el siguiente codigo creo que he conseguido lo que buscas:
String str3 = "a b c d e f g";
      char ch[] = str3.toCharArray();
      
      System.out.println("Str: " + str3);
      for(int i=0; i<ch.length; i++){
         if(ch[i] == ' ') {
            ch[i] = '\\';
         }
      }
      str3 = String.copyValueOf(ch);
      //str3 = str3.replaceAll(" ", "\\ ");
      System.out.println("Str remplaceAll: " + str3);


Me devuelve:
Str: a b c d e f g
Str remplaceAll: a\b\c\d\e\f\g


Como puedes ver lo he echo a la "antigua usanza" (como se haría en c por ejemplo). Si lo que quieres es añadir el caracter '\' antes del espacio (es decir que no se lo coma), tendrías que hacer un char[] nuevo con suficiente espacio para almacenarlo.

Un Saludo ;)
Pues la verdad, al final lo solucione de otra manera, el programa tenia que mostrar 2 cosas tras su ejecucion XXXX y XXXX\ XXXX\ XXX, es decir que esos parametros los debia tomar un script como $1 el primero y $2 el segundo, al le pase los parametros al script, saque $1 (que ese seguro que no tenia espacios) y luego con un shift guardaba el resto de argumentos en otra variable, creo que con " " tambien deberia de funcionar, pero vamos cuando retoque el codigo lo hare de manera algo mas decente y sera el propio programa el que llame los scripts (para mover directorios prefiero usar las funciones del SO que java, aunque pierda la portabilidad del codigo)
JdR escribió:Pues la verdad, al final lo solucione de otra manera, el programa tenia que mostrar 2 cosas tras su ejecucion XXXX y XXXX\ XXXX\ XXX, es decir que esos parametros los debia tomar un script como $1 el primero y $2 el segundo, al le pase los parametros al script, saque $1 (que ese seguro que no tenia espacios) y luego con un shift guardaba el resto de argumentos en otra variable, creo que con " " tambien deberia de funcionar, pero vamos cuando retoque el codigo lo hare de manera algo mas decente y sera el propio programa el que llame los scripts (para mover directorios prefiero usar las funciones del SO que java, aunque pierda la portabilidad del codigo)


En principio si debería funcionar como indicas. [ok]

En cuanto a lo de la portabilidad del código, si trabajas con paths relativos sigue siendo "portable". :)

Un Saludo ;)
Podria mantenerlo portable usando File.Separator, pero vamos que ahora estoy liado y tampoco es el objetivo XD, con que funcione en linux vale
JdR escribió:cadena.replaceAll(" ", "\\ " );

Si lo hago asi, al mostrarlo se convierte directamente en espacios


Ya has solucionado tu principal problema, pero como anotación, para que eso funcione tendrás que cambiar el "\\" por "\\\\", Es como si "compilase" 2 veces la cadena, entonces tras la primera compilación se queda en "\\" y tras la segunda imprime "\".
7 respuestas