Separar String

Bom dia galera. Estou com um problema aqui e gostaria de pedir uma forma dos mas esperiêntes aqui do forum. Tenho a seguinte String que pode ser desse tamanho ou não depende do valor que estiver na base de dados. String string = "0609192830323842556572808286878891929598"; preciso separar essa string em partes de dois caracter exemplo 06, 09, 19,… E assim por diante. Mas até agora não consequi. Aguem ai pode me dar uma força.

Use “for” e “substring”. Use também “length” para você poder dimensionar o array de strings resultante. Você sabe dividir por 2?

String string = "0609192830323842556572808286878891929598"; String resultado[] = new String[string.length() / 2]; for (int x = 0; x < resultado.length; x++) { resultado[x] = string.substring(x * 2, x * 2 + 2); System.out.println(resultado[x]); }

Muito obrigado eliangela, mas eu havia acabado de fazer com a dica do entanglement. Valew galera.

Testa assim

[code] public static Object[] parChar(String conteudo) {
List lista = new ArrayList();
char arrayChar[] = conteudo.toCharArray();

	for (int i = 0; i < arrayChar.length;) {
		lista.add(i + 1 < arrayChar.length ? 
							String.valueOf(arrayChar[i]) + String.valueOf(arrayChar[i + 1]) : 
							String.valueOf(arrayChar[i]));
		i += 2;
	}
	if (lista.size() > 0) {
		return lista.toArray();
	} else {
		return null;
	}
}[/code]

Muito obrigado mesmo galera. Mas eu ja havia feito assim com a dica do nossa amigo entanglement
Olha ai o codigo:

public class SepararString { public static void main(String[] args) { String string = "060919283032384255657280828687889192959878"; if(string.length() % 2 != 0) { string += " "; } String[] array = new String[string.length() / 2]; StringBuffer sb = new StringBuffer(); for(int i = 0; i < array.length; i++) { sb.append(string.substring((i * 2), (i * 2 +2))+" "); } System.out.println(sb.toString()); } }

Saca só, acho que com Regex fica muito mais fácil:

public class Utils {
	public static String[] splitString(String input){
		return input.replaceAll("(..)","$1:").split(":");
	}

	public static void main(String[] args) {
		System.out.println(Utils.splitString("9768574768"));
	}
}

Pois é, quando você só tem um martelo, tudo se parece com pregos :slight_smile:

[quote=barenko]Saca só, acho que com Regex fica muito mais fácil:

[code]
public class Utils {
public static String[] splitString(String input){
return input.replaceAll("(…)","$1:").split(":");
}

public static void main(String[] args) {
	System.out.println(Utils.splitString("9768574768"));
}

}
[/code][/quote]

Muito boa solução. Parabéns.
Precisa de um for no println?

        for (String s : splitString("12345678901234567890") ) {
                System.out.println(s);
        }

barenko muito show o código, Parabens cara.

eheh é, precisa melhorar o printf sim…

ou for, ou Arrays.toString… como é teste, com arrays vc digita menos (e cá entre nós, sou preguiçoso p/ digitar…).

public static void main(String[] args) {
	System.out.println(Arrays.toString(Utils.splitString("9768574768")));
}