Separar String

10 respostas
C

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.

10 Respostas

E

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

E

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]); }

C

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

O

Testa assim

public static Object[] parChar(String conteudo) {
		List<String> lista = new ArrayList<String>();
		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;
		}
	}
C

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()); } }

B

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("[telefone removido]"));
	}
}
E

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

C
barenko:
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("[telefone removido]"));
	}
}
Muito boa solução. Parabéns. Precisa de um for no println?
for (String s : splitString("12345678901234567890") ) {
                System.out.println(s);
        }
C

barenko muito show o código, Parabens cara.

B

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("[telefone removido]")));
}
Criado 9 de outubro de 2009
Ultima resposta 9 de out. de 2009
Respostas 10
Participantes 6