Receber e quebrar um string qualquer e poder manipular

Olá pessoal do GUJ, sou iniciante em Java e tô tentando implementar um programinha que irá receber uma string…de qualquer tamanho, dividi-lá em caracteres e posteriormente armazena-los em posições de uma matriz.
Tenho algumas dúvidas a respeito…espero que possam me ajudar. O ideal seria mesmo uma matriz pra armazenar os caracteres? Ou um array list funciona melhor?

Tô tentando implementar dessa forma:

public static void main(String[] args) {
String teste = "Fórum GUJ"
int tam_teste;
int tam_matriz;
String matriz_caracteres[][];

tam_teste = teste.length(); //pra eu saber qual a dimensão da matriz terei que criar
tam_matriz = Math.sqrt(tam_teste);

String t[] = teste.split(" "); //Divide por caracteres a string

for(int i=0;i<=tam_matriz; i++){
  for(int j=0; j<=tam_matriz; j++){
    matriz_caracteres[i][j] = t[];  
  }
}

Só que não funciona, a matriz não está recebendo tudo corretamente. Outra dúvida é que preciso de número inteiro pra tam_matriz e nem sempre esses valor será tal, sem contar que Math.sqrt só suporta double, aí depois não consigo usar o Integer.parseInt…não dá!
Bom, espero que vocês do fórum me ajudem… :slight_smile:

Faltou você colocar o ‘i’ dentro do vetor t de String quando você declara que matriz_caracteres = t

for(int i=0;i<=tam_matriz; i++){ for(int j=0; j<=tam_matriz; j++){ matriz_caracteres[i][j] = t[i]; } }
Você não conseguira trabalhar com casas quebradas na matriz, somente inteiro mesmo.

Se você ver a função sqrt ela pede um double como parâmetro e você está enviando um int ‘tam_teste’ e tambem retorna um double, mas vc esta jogando o retorno em um int ‘tam_matriz’.

Pedro.Guerra, isso ai eu já fiz, desculpa, foi erro de digitação.
passei um double pra math.sqrt…só que não tem como fazer o double virar inteiro?
não tem como ter uma matriz preenchida com caracteres?

double a;
double b = 6954.43;
a = Math.sqrt(b);
int c = (int) a;

Ele pega a parte inteira do double. No caso se fosse:

int c = (int) b;

a variavel c valeria 6954

Pedro.Guerra, obrigada! Essa modificação acabei de fazer aqui…e já tá retornando apenas a parte inteira do double!

Existe alguma forma de armazenar os caracteres em alguma estrutura geométrica? Onde eu possa ter controle, pedir pra trocar posições entre si e etc!?

Olha, tem um comando que devolver um vetor de char para você

char[] letras = suaString.toCharArray();

Ai em cada posição desse vetor ‘letras’, você terá uma letra da sua string

Bem, até agora várias de minhas tentativas foram em vão, ou seja, não me levaram a uma matriz com os caracteres de uma string qualquer.
Não existe como implementar isso em java?
Eu quero tentar um esquema assim de criptografia. Embaralhando os caracteres da matriz, seja girando ela 90º ou substituindo diagonal princpal por diagonal secundária.
Se alguém puder me ajudar, ficarei bem grata, já que eu não tô conseguindo.