Dividir String com split()

5 respostas
A

Tenho uma String com 256 caracteres, e preciso dividi-la em 16 blocos com 4 caracteres cada.

Estou tentando:

String[] elems = codRetorno.split("[\w]{16}");

Mas o array fica vazio… O que está errado? Como posso fazer essa operação usando expressões regulares?

5 Respostas

rolemberg

Se isso é uma unica String, procura pelo comando subString()…é bem maneiro e mais facil…

A

Já fiz com Substring, mas não me pareceu ser a solução mais elegante…

Tem que fazer um for, e achei que talvez com regex fosse mais rápido.

Anyway… pq o padrão \w{16} não funciona?

peczenyj

É pela forma como o split funciona: ele procura delimitadores na string e retorna um array com o que tem entre um delimitador e outro.

Realmente, poderia funcionar dessa forma, mas não é o caso.

Rafael_Nunes

Por que não tranforma em um array de char(toCharArray) e trabalha com ele?

E quanto ao pattern de regex, creio que ele está procurando por palavras com 16 caracteres, não de 16 em 16 caracteres. Ou tente usar as classes Pattern e Matcher ao invés de split.

A

Valeu…

Vou usar o substring com for. Não é bonito, mas funciona e não encontrei outra maneira de fazer usando expressões regulares.

Criado 17 de março de 2008
Ultima resposta 17 de mar. de 2008
Respostas 5
Participantes 4