Java - Editar String

 
Vista:

Editar String

Publicado por Nando (8 intervenciones) el 02/05/2006 12:14:46
Necesito modificar esta cadena:

C:\Documents and Settings\fernando\Mis documentos\

por:

C:/Documents and Settings/fernando/Mis documentos/

lo he intentado con:
DirNuevo.replaceAll("\\","/"); y da error al ejecutarlo.

tambien he intentado hacer:
Aux = DirNuevo.split("\\");
Pero también da error.

Sabeis como puedo hacer esto?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Editar String

Publicado por manru (2 intervenciones) el 02/05/2006 14:53:17
Hola:

Java no ve un como un caracter al simbolo "\" lo ve como un código de "escape" que le indica que el siguiente caracter tiene que ser tomado como un caracter y no como un codigo de escape.

Confundido no?

Pues bien... si quieres que java interprete "C:\Documents and Settings\fernando\Mis documentos\ "
Ponlo así:

C:\\Documents and Settings\\fernando\\Mis documentos\\

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Editar String

Publicado por Nando (8 intervenciones) el 02/05/2006 18:12:21
Hola, gracias por responder.
Pero es que esa cadena viene de:

JFileChooser filechooser = new JFileChooser();

File file = filechooser.getSelectedFile();
TextOrigen.setText(file.getPath());

Estonces necesito guardar en un fichero la cadena que se mete en TextOrigen que es:
C:\Documents and Settings\fernando\Mis documentos\
y cambiar por la misma pero con la barra al revés.

De todas formas como podría transformar es cadena en la que me has dicho¿?
C:\\Documents and Settings\\fernando\\Mis documentos\\

Muchas gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Editar String

Publicado por Juan (131 intervenciones) el 04/05/2006 16:46:28
Tambien podrias usar los metodos IndexOf recibe dos String y te retorna la posicion de la primera ocurrencia del segundo Strign en el primero, y tienes un metodo replace que recibe dos string y un entero y hace un cambio de strings en la posicion especificada por el entero. Prueba a ver que tal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

He conseguido algo

Publicado por Nando (8 intervenciones) el 02/05/2006 21:56:38
Con este código consigo lo que quería. Miro caracter a caracter si es una \ y lo cambio por /. No me gusta hacerlo asi, si alguien sabe algo más sencillo lo agradecería

String reemplazar= "";
for (int j=0;j<DirNuevo.length();j++)
if (DirNuevo.charAt(j) == 92){
reemplazar+="/";
}else{
reemplazar+=DirNuevo.charAt(j);
}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:He conseguido algo

Publicado por Kike (72 intervenciones) el 03/05/2006 02:48:35
Hola, aqui pongo un ejemplo de corrector de palabras, aunque sencillo, funciona correctamente. Espero que te sirva:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Corrector{

public static void main( String args[] ){
JFrame ventana = new FormaCorrector();
}
}

class FormaCorrector extends JFrame{

public FormaCorrector(){
super( "Corrector de palabras" );
iniciarGUI();
setSize( 400, 320 );
setLocationRelativeTo( null );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setResizable( false );
setVisible( true );
}

private void iniciarGUI(){
contenedor = getContentPane();
contenedor.setLayout( null );

JLabel mensaje = new JLabel( "Texto:" );
contenedor.add( mensaje );
mensaje.setBounds( 50, 20, 80, 28 );

txtDocumento = new JTextArea();
JScrollPane deslizador = new JScrollPane( txtDocumento );
contenedor.add( deslizador );
deslizador.setBounds( 50, 50, 300, 100 );

mensaje = new JLabel( "Buscar:" );
contenedor.add( mensaje );
mensaje.setBounds( 10, 180, 80, 28 );
cmpCaracter = new JTextField();
contenedor.add( cmpCaracter );
cmpCaracter.setBounds( 60, 180, 100, 28 );

mensaje = new JLabel( "Reemplazar por:" );
contenedor.add( mensaje );
mensaje.setBounds( 190, 180, 100, 28 );
cmpCaracterNuevo = new JTextField();
contenedor.add( cmpCaracterNuevo );
cmpCaracterNuevo.setBounds( 290, 180, 100, 28 );

agregarBoton( contenedor, "Reemplazar", 50, 240,
new ActionListener(){
public void actionPerformed( ActionEvent evento ){
reemplazar();
}
}
);
agregarBoton( contenedor, "Salir", 220, 240,
new ActionListener(){
public void actionPerformed( ActionEvent evento ){
System.exit( 0 );
}
}
);
}

private void reemplazar(){
if ( txtDocumento.getText().length() == 0 ){
JOptionPane.showMessageDialog( FormaCorrector.this, "No hay texto para corregir", "Error", JOptionPane.ERROR_MESSAGE );
return;
}
if ( cmpCaracter.getText().length() == 0 ){
JOptionPane.showMessageDialog( FormaCorrector.this, "No hay un caracter a buscar", "Error", JOptionPane.ERROR_MESSAGE );
return;
}
if ( cmpCaracterNuevo.getText().length() == 0 ){
JOptionPane.showMessageDialog( FormaCorrector.this, "No hay un caracter a reemplazar", "Error", JOptionPane.ERROR_MESSAGE );
return;
}
txtDocumento.setText( txtDocumento.getText().replace(
cmpCaracter.getText().charAt( 0 ),
cmpCaracterNuevo.getText().charAt( 0 ) )
);
}

private void agregarBoton( Container c, String texto, int x, int y,
ActionListener accion ){

JButton boton = new JButton( texto );
c.add( boton );
boton.setBounds( x, y, 130, 28 );
boton.addActionListener( accion );
}

private Container contenedor;
private JTextField cmpCaracter;
private JTextField cmpCaracterNuevo;
private JTextArea txtDocumento;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar