Java função Split com separador "||" não funciona --- helppp :-(

Pessoal tenho o seguinte código:
Tenho a variavel:
String s3 = “||1234||9874||9875||”;
Estou usando Split que teoricamente me devolveria um array com:
1234
9874
9875

[code]
String s3 = “||1234||9874||9875||”;
String [] temp = null;
temp = s3.split("||");
for (int i = 0 ; i < temp.length ; i++) {

               Syso(temp[i]);	


		        				}
		        				
        					}[/code]

Aloguem tem ideia do que ta errado ??

“|” é um caractere especial para expressões regulares. Como você quer usar o “|” como um “|” mesmo, não como o operador “|”, então use:

temp = s3.split(Pattern.quote("||"));  

Isso faz com que “split” entenda o “|” como um “|” mesmo e “desligue” o modo de expressões regulares.

Tente fazer um replace antes:

s3.replaceAll("||", ";").split(";");

[]´s

Daniel

Isto funcionou perfeitamente

java.util.regex.Pattern.quote

Mas o "replaceAll não funcionou bem.

Ele fez algo do tipo:
;|1;2;3;4;

Obrigado pelas respostas :smiley:

O replaceAll tem exatamente o mesmo “problema” do split, ou seja, requer uma expressão regular. Se você passa algo que contém caracteres especiais, usados em expressões regulares, então se NÃO quiser que funcione como uma expressão regular, deve usar Pattern.quote.