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
[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")));
}