Scanner com os caracteres "^" e "|", não funciona?

1 resposta
Marcos_Henrique_N_Al
import java.util.Scanner;
 
 /**
  * @author Marcos Henrique
  * 
  */
 public class TesteScannerGUJ {
 
 	/**
 	 * 
 	 */
 	public TesteScannerGUJ() {
 		Scanner reg1 = new Scanner("Nome^Endereco^Telefone");
 		Scanner reg2 = new Scanner("Nome#Endereco#Telefone");
 		Scanner reg3 = new Scanner("Nome|Endereco|Telefone");
 		Scanner reg4 = new Scanner("Nome;Endereco;Telefone");
 		reg1.useDelimiter("^");
 		reg2.useDelimiter("#");
 		reg3.useDelimiter("|");
 		reg4.useDelimiter(";");
 		
 		System.out.println("------------COM <^>NAO FUNCIONA");
 		while (reg1.hasNext()) {
 			System.out.println(reg1.next());
 		}
 		System.out.println("------------COM <#>FUNCIONA");
 		while (reg2.hasNext()) {
 			System.out.println(reg2.next());
 		}
 		System.out.println("------------COM <|>NAO FUNCIONA");
 		while (reg3.hasNext()) {
 			System.out.println(reg3.next());
 		}
 		System.out.println("------------COM <;>FUNCIONA");
 		while (reg4.hasNext()) {
 			System.out.println(reg4.next());
 		}
 		// TODO Auto-generated constructor stub
 	}
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		new TesteScannerGUJ();
 		// TODO Auto-generated method stub
 
 	}
 
 }

------------COM <^>NAO FUNCIONA
Nome^Endereco^Telefone

------------COM <#>FUNCIONA
Nome
Endereco
Telefone

------------COM <|>NAO FUNCIONA
N
o
m
e
|
E
n
d
e
r
e
c
o
|
T
e
l
e
f
o
n
e

------------COM <;>FUNCIONA
Nome
Endereco
Telefone

1 Resposta

F

Marcos,
Gostei muito da sua observação quanto ao uso do Scanner, até porque eu “descobri” essa classe há pouco tempo (lendo em um artigo sobre “java.util” do Tiger, muito bem escrito pelo pessoal que freqüenta o GUJ).

Bem, analisando um pouco o código e por conseqüência os possíveis argumentos do método “useDelimiter()”, cheguei a uma solução: podemos usar o “Pattern.quote()” que vai funcionar conforme o esperado.

Veja o exemplo abaixo:

reg1.useDelimiter(Pattern.quote("^"));

O mesmo funciona para o “|”.
Fica aqui minha dica.

Abraços,

Criado 6 de junho de 2007
Ultima resposta 6 de jun. de 2007
Respostas 1
Participantes 2