Substituir Tab's por espaço

1 resposta
J

Boa tarde.

Amigos estou com um problema para converter os tabs de um arquivo, para espaço. É o seguite, tenho uma aplicação que ler um determinado arquivo de texto, era para ele remover os tabs e substitur por espaço para eu poder dividir o conteudo entre os espaços e coloca em strings diferentes tipo: strCodigo, strNome. Seque abaixo o meu código.

private void buttonGerarArquivoMouseClicked( java.awt.event.MouseEvent evt) {                                                      
        String texto = "";      
        String strCodigo = "";      
        String strData = "";      
        String strHora = "";      
        String strDocumento = "";      
        String documento = "";      
        int cont = 0;      
        int cont2 = 0;      
              
        try{      
                  
            BufferedReader input = new BufferedReader(new FileReader("C:\\Gerador\\HORA300.txt"));      
                  
            try{      
                String linha = null;      
                FileWriter arquivo;      
                PrintWriter escrever;      
                      
                arquivo = new FileWriter("C:\\Gerador\\HORASAF.txt");      
                escrever = new PrintWriter(arquivo);      
                      
                texto = linha = input.readLine();      
                      
                while (linha != null){      
                    texto.replaceAll("\t"," ");      
                    while (texto.charAt(cont) != ' '){                              
                        strCodigo += texto.charAt(cont);      
                        linha = input.readLine();      
                              
                        cont ++;      
                    }      
                }      
                      
                escrever.append(strCodigo);      
                escrever.close();      
                this.dispose();      
                      
            }catch(java.io.IOException ioex){      
                      
            }finally{      
                input.close();      
            }      
        }catch (IOException ioe){      
                  
        }      
    }

Acontece que se eu colocar o strCodigo.replaceAll("\t"," ");
ele vai escrever no arquivo substituindo o tab pelo espaço, só que eu quero fazer isso antes do While ou dentro.
Se alguem puder ajudar eu agradeço.

1 Resposta

N

Bom dia, amigo!

Pelo que vi você criou uma String chamada texto e mais adiante invocou texto.replaceAll("\t"," ");. OK, mas isso não resolve o problema, pois Strings em Java não podem ser alteradas. Ou você altera a variável texto para StringBuffer, ou substitui a linha em destaque por texto =texto.replaceAll("\t"," ");

Espero ter ajudado!

private void buttonGerarArquivoMouseClicked( java.awt.event.MouseEvent evt) {                                                      
        String texto = "";      

...  
                      
                while (linha != null){      
                   // texto.replaceAll("\t"," "); // não vai alterar a String!
                   texto = texto.replaceAll("\t"," "); // vai substituir a String por outra
...
                }      
...
    }
Criado 2 de abril de 2008
Ultima resposta 8 de abr. de 2008
Respostas 1
Participantes 2