Barra invertida

6 respostas
J
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:
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]);
	}
}

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

6 Respostas

andre.santos

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

betoslayer

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.

J

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
betoslayer

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

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.

J

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.

Elder_Romao

[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");
    }
Criado 8 de dezembro de 2008
Ultima resposta 11 de out. de 2013
Respostas 6
Participantes 4