Exemplo de ArrayList+Lógica

1 resposta
pcecchetto

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

1 Resposta

davidbuzatto

Mas vc precisa mesmo de um ArrayList?

Dá uma olhada

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() );
		
	}
	
}

Falow!

Criado 26 de maio de 2007
Ultima resposta 26 de mai. de 2007
Respostas 1
Participantes 2