Dentro do if o objeto só existe lá, correto?
Se o problema é esse, basta declarar o array fora do if
, não precisa criar outro.
Se for para quebrar a string em partes iguais, basta pegar substrings de tamanho fixo, em vez de pegar um caractere de cada vez. E também dê nomes melhores para as variáveis, porque isso ajuda mais do que parece:
String str = "SERAQUESOBRA";
int partes = 3; // dividir a string em 3 partes iguais
int tamanho = str.length() / partes; // tamanho de cada parte
String[] quebra = new String[partes]; // array com as partes
if (str.length() % partes == 0) {
for (int i = 0; i < str.length(); i += tamanho) {
quebra[i / tamanho] = str.substring(i, i + tamanho);
}
System.out.println(Arrays.toString(quebra));
} else {
System.out.printf("Não é possível dividir em %d partes iguais\n", partes);
}
// como eu declarei o array fora do if, consigo usar aqui se for preciso
Assim, o array quebra
terá "SERA", "QUES" e "OBRA".
Mas tem uma coisa que não ficou claro no enunciado:
A String tem que ser dividida por igual entre essas linhas, a sobra, se houver coloca numa outra linha, fora a quantidade x.
A sobra de caracteres deve ser colocada no inicio e no fim da String resultante de forma alternada.
Se a string for "TANTOFAZOTEXTO" e x
for igual a 3, então teríamos as partes:
- "TANT"
- "OFAZ"
- "OTEX"
E a sobra seria "TO", mas não entendi essa regra de "colocada no inicio e no fim da String resultante de forma alternada". Como ficaria o resultado final?