Bem galera tava precisando de um exemplo simples de ArrayList, estou com um exercicios simples por sinal mas possuo um pouco de dificuldade com lógica e não fiz ainda nada com ArrayList.É o seguinte entro com uma frase e essa frase é modificada.EX:
JAVA A LINGUAGEM TOPTOP
tem que sair assim
JVAA A LGUAGNEM TPOTOP
não modificando a primeira e ultima letra da palavra
Mas vc precisa mesmo de um ArrayList?
Dá uma olhada
[code]
public class Teste {
public static void main( String[] args ) {
Teste t = new Teste();
System.out.println( t.embaralhaLetras( "JAVA A LINGUAGEM TOPTOP" ) );
}
public String embaralhaLetras( String frase ) {
/* primeiro, divide toda a frase
* em pedaços, usando o espaço como separador.
*/
String[] tokens = frase.split( " " );
// cria um StringBuffer para ir armazenando os novos valores
StringBuffer sb = new StringBuffer();
/* percorre todos os pedaços (tokens) e verifica os
* que tem tamanho maior que 3, pois não faz sentido
* embaralhar palavras com 3 ou menos letras
*/
for ( int i = 0; i < tokens.length; i++ ) {
// se tiver mais de três letras
if ( tokens[ i ].length() > 3 ) {
// obtém o array de chars do token
char[] c = tokens[ i ].toCharArray();
char aux;
/* percorre o interior de cada token (exceto as extremidades)
* trocando os valores
*/
for ( int j = 1; j < tokens[ i ].length() - 1; j++ ) {
// obtém um valor aleatório do intervalo
int nr = ( ( int ) ( Math.random() * ( tokens[ i ].length() - 2 ) ) ) + 1;
// faz a troca dos caracteres:
// armazena a posição atual
aux = c[ j ];
// na posição atual guarda a aleatória
c[ j ] = c[ nr ];
// na aleatória guarda o valor armazenada da atual
c[ nr ] = aux;
}
// remonta o token
tokens[ i ] = String.valueOf( c );
}
// adiciona no buffer
sb.append( tokens[ i ] + " " );
}
// retorna o valor em String do buffer
return String.valueOf( sb.toString() );
}
}[/code]
Falow!