Barra invertida

e ai galera, estou batendo cabeça com algo que aparenta ser muito básico, estou tentando obter um caracter ("" no caso) de uma string através do substring. Segue abaixo o código exemplo:

[code]
public class Teste {

public static void main(String[] args) {

	String valor = "123566";
	char vChar[] = valor.toCharArray();

	System.out.println(valor.substring(3,4));
	System.out.println("\" + valor.substring(3,4));
	System.out.println(vChar[3]);
	System.out.println((int) vChar[3]);
}

}[/code]

Neste caso o sistema retorna:

-

45

consecutivamente. O que estou tentando fazer é chegar no código ASCII do “”, 92 para verificar se há o caracter na string utilizada, estou exportando para um arquivo formato xml e os crânios dos clientes tem “” no endereço, no nome, …, enfim.

Se alguém tiver uma luz ficarei muito grato.

Falow

Se você só quer saber se existe o caracter no texto e sua posição:

String valor = "123467890";

valor.indexOf("\"); //Se for maior que -1 qr dizer que existe e em qual posição está

Espero ter ajudado!

[]'s

Rapaz vc nao está encontrando o “” barra invertida pq vc colocou ele na String seguido de um 5 que é escape pro sinal de -, ou seja vc deveria usar o escape do barra invertida que é “\” assim vc teria o resultado desejado na vchar[3]. Lembrando que quando o barra invertida vem do arquivo para uma String java, automaticamente ja é feita a conversão e vice versa.

olá pessoal, as dicas são de grande valor mas infelizmente não resolvem o problema:

  • o indexOf() não funciona neste caso porque o Java interpreta a barra invertida mais o próximo caracter, então não o encontra.
  • o caracter “\5” que está na string é somente um exemplo, como estou importando dados de uma base alguns campos string são alimentados pelos usuário utilizando o “”, eis ai o motivo da minha necessidade.
    Valeu as dicas, mas seguimos buscando, falow

[quote=JBenelli]olá pessoal, as dicas são de grande valor mas infelizmente não resolvem o problema:

  • o indexOf() não funciona neste caso porque o Java interpreta a barra invertida mais o próximo caracter, então não o encontra.
  • o caracter “\5” que está na string é somente um exemplo, como estou importando dados de uma base alguns campos string são alimentados pelos usuário utilizando o “”, eis ai o motivo da minha necessidade.
    Valeu as dicas, mas seguimos buscando, falow[/quote]

Kra vc nao entendeu o que eu falei, quando vc importa dados de um arquivo e joga numa String a conversao ja é feita para o escape “\” do barra invertida. Por exemplo, vc pode testar isso:

Digamos que voce tenha um arquivo teste.txt que contenha o seguinte conteudo:

Aí quando vc importar o dados do arquivo assim por exemplo

BufferedReader read= new BufferedReader(new FileReader("teste.txt"));
String linha=read.readLine();
//se vc tiver debugando em uma IDE e for orlhar o valor que a variavel vai ter, vai ver
// que a será "O meu diretorio padrao é C:\Users\Nogueira\Desktop"
//ou seja a conversao ja é feita automaticamente

Aí vc vai poder usar o indexOf("\") normalmente.

brother me desculpe mas entendi o que vc falou, no entanto, a questão é que estou lendo uma base de dados (FB ou MS-SQL) e exportando as informações, no processo de exportação tenho que verificar a existência do caracter ‘’ em campos texto.

informação na base de dados no registro 1, ENDERECO = “POA\ RUA ABC”.

while(rs.next()) { fileSaida.print(util.getSubsCharEsp(rs.getString("ENDERECO"))); }

criei uma método que utiliza Substring e analisa e substitui (quando necessário) cada caracter da String, mas o ‘’ não consigo validar, ai é onde está meu problema, o Java me retorna a informação tal qual está na base. Mas valeu a força.

[color=blue] Quando vc copia um caminho ela sempre vem com duas barras apesar de não parecer no campo tipo JTextfield, da mesma forma tever ser colocado em uma String[/color]

    String texto = "Tenta\\fazer\\isso";
    
    [color=blue]boolean[/color] b = texto.matches(".*[\\\\].*");
    
    [color=blue]if[/color] (b == [color=blue]true[/color]){
        System.out.println("Tem barra");
    }