Substitui caracter

Vou repetir o que já te expliquei ali atrás.

\t significa tab.

Se você quer colocar uma barra, terá que usar \.

Isso só vale para strings literais, criadas com “”

Tente rodar esse código:

String x = "C:\teste"; System.out.println(x);

Veja o que imprime.

Existem uma série de sequências de caracteres que são especiais no Java. São chamadas de sequencia de escape (scape sequences). Elas servem para inserir no seu texto caracteres como tabulação, quebra de linha, aspas, dígitos unicode que não estejam no seu teclado, etc.

Todas essas sequencias são iniciadas com a . Por isso, a \ é tratada de forma especial em todas as Strings literais. Por exemplo, se você quisesse criar uma string com o valor:
João é “muito legal”.

Como você faria para por as aspas? No Java, usa-se a sequencia especial ". Isso indica que a ", naquele contexto, é uma aspa que deve ir dentro da String, e não a aspa para fechar a string.

String x = "João é \"muito legal\"."; System.out.println(x);

Note que as \ não serão impressas. Se você quiser escrever texto em duas linhas, pode usar o caracter \n, que significa quebra de linha:

String linhas = "Vinícius\nGodoy de\nMendonça"; System.out.println(linhas);

Agora, se a \ é tão especial, como fazer para imprimir uma única barra? E se eu quisesse escrever a string:
C:\nabo
Eu teria um problema, já que \n é uma quebra de linha. Nesse caso, para dizer que a \ é uma barra mesmo, usamos \.

String dir = "C:\nabo"; System.out.println(dir);
Ou então:

String dir = "C:\teste"; System.out.println(dir);

Note que isso vale sempre que você está criando string usando as aspas.

É por isso que a sua IDE dá destaque ao \t. Porque \t é um único caracter, o de tabulação.
Aí explica pq ao imprimir c:\teste ele imprime:
c:
Dá um tab (\t)
E então escreve este.

é dai ele vai funcionar…

mais acontece que a empresa nao vai mandar
c:\

Bem estive pensando …

é simples vou falar para empresa nao gerar os arquivos na paste TESTE …
rss

em outra qualquer menos em pastas que não iniciem com t.

Valeu obrigado…

Nossa, o que vc ainda não entendeu?

O \ só vale para strings criadas usando aspas.

Se você ler a string de um arquivo, as barras vão se comportar de forma normal.

Só complementando:

Então quando você digita

String teste = "C:\nabo";

Você está dizendo para o compilador o seguinte: “Ei tá vendo aquele “\n”, eu coloquei uma “” a mais porque eu quero que sai “\n” no texto em vez pular uma linha, ok?”

Então o compilador compreende e a String irá se transformar em “C:\nabo”.

Em todos os outros casos, quando você vai digitar algo para um programa, ou o programa irá fornecer uma String para ti, como pegar o path no File, a String virá “C:\nabo”.

entedi…

OBRIGADO !

Só para demonstrar, roda esse programa:

[code]import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

public class Teste {

public static void main(String[] args) {
    JFileChooser fileChooser = new JFileChooser();
    
    if (fileChooser.showOpenDialog(null) != JFileChooser.APPROVE_OPTION)
        return;
    
    String file = fileChooser.getSelectedFile().getAbsolutePath();
    file = file.replace("\", "/");
    JOptionPane.showMessageDialog(null, file);
}

}[/code]

Ele pede para você escolher um arquivo, e troca as barras \ por /, do jeito que você quer. Então, exibe o novo nome do arquivo.