Utilizando .split

[code] String [] atributos;

linha = ler.readLine()
//linha = "5707|'W R MOTO PE.AS LTDA|  3538321934|RUA B GARCIA|8|LJ 5|x|37270000|CAMPO BELO|MG|"
atributos = linha.split("|");
				
				for(int x =0; x<12; x++){
				System.out.println("Pos "+x +" "+ atributos[x]);
				}[/code]

Isso é o que esta sendo impresso:

Pos 0
Pos 1 5
Pos 2 7
Pos 3 0
Pos 4 7
Pos 5 |
Pos 6 ’
Pos 7 W
Pos 8
Pos 9 R
Pos 10
Pos 11 M

Nao deveria imprimir assim?

Pos 0 5707
Pos 1 'W R MOTO PE.AS LTDA
Pos 2 3538321934
Pos 3 RUA B GARCIA
Pos 4 8.
.
.
POS 10 MG
Pos 11

“|” é um caracter especial para expressões regulares (é o operador “or”).

Se precisar usar o “|” como “|”, não como especial, você pode fazer:

atributos = linha.split("\|");

ou então:

atributos = linha.split("[|]");

ou então:

atributos = linha.split(Pattern.quote ("|"));