Como dividir um String e passar ela para um Array de String

Boa Tarde.

Estou desenvolvendo um projeto e estou com uma duvida.
Preciso pegar uma String e dividir ela um um array de string Ex:
Banana => {‘Ba’, ‘na’, ‘na’} ou 124506=>{‘12’, ‘45’, ‘06’}

quando é para separar para um array de char eu sei fazer, usando o toCharArray.

String mensagem = JOptionPane.showInputDialog(null, “Digite a Mensagem a ser transmitida:”);
char[] mensagemArray = mensagem.toCharArray();

Para um array de String existe algum método que faça isso?

1 curtida

Opa, tudo bem? Explique melhor o que você quer fazer.
Você quer separar a certa string em um array de string, é isso?

Caso seja isso, pode usar split

Usa split

1 curtida

Primeiro você precisa saber um padrão que você vai separar.

“asd”.split(".") vai resultar em [“a”, “s”, “d”]
Dentro do split vc usa regex, pode personalizar para conseguir oq quer.

1 curtida

Perfeito @Rodrigo_Void!! Excelente!

Usa
.split("..")
Onde ponto é um caractere coringa, logo … são a 2 caracteres.

Entendi,o estranho que aqui usando o .split("…") não está funcionando, ele não faz a separação.
Segue o código:

public static void main(String[] args) {
		lerArq();
		System.out.println(mensagem);
		String[] st1 = mensagem.split("..");
		imprime(st1);
		// char[] mensagemArray = mensagem.toCharArray();
		// imprime(alfabeto);
		// verificaMensagemAlfabeto(mensagemArray, alfabeto);
		// System.out.println(validMensagem);

	}

	public static void imprime(char[] array) {
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
	}

	public static void imprime(String[] array) {
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
	}
}

Se trocar o conteúdo do método split ele funciona normalmente,Ex: .split(“1”),

private static String[] splitToNChar(String text, int size) {
        List<String> parts = new ArrayList<>();

        int length = text.length();
        for (int i = 0; i < length; i += size) {
            parts.add(text.substring(i, Math.min(length, i + size)));
        }
        return parts.toArray(new String[0]);
    }
1 curtida
"blablablablablablablablablabla".split("(?<=\\G.{2})");
2 curtidas

Os 2 deram certo,muito obrigado pela ajuda e desculpa a demora para responder.