Exemplo de ArrayList+Lógica

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!