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");
}