Gerar nomes aleatoriamente

o codigo abaixo, esta tentando formar nomes aleatoriamente juntando consoante+vogal… porem só retorna na saida duas letras… porwque??

[code]import java.util.Random;

public class numerotres {

public static void main (String args[]){

	
	int i,nrAleatorioVogal,nrAleatorioConsoante;
	
	

	
	String vogal [] = {"a","e","i","o","u",},vc = "" ,nome = "",consoante [] ={"b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","w","x","y","z"}; 
	
	
	Random random = new Random();

			
		
			
			for(i = 0 ; i <= 8; i++){
				
				nrAleatorioVogal = 0 + random.nextInt(4);//escolhe uma pos de 0 a 4
				
				nrAleatorioConsoante = 0 + random.nextInt(19);//escolhe pos de 0 a 19  
				   	
				vc = vogal[nrAleatorioVogal] + consoante[nrAleatorioConsoante];
				
				nome = vc;
				
			}
				
				System.out.print(nome);
				
		
		
		
		
		}

}
[/code]

Dê uma olhada nesta linha:

 nome = vc;  

ué… a string nome está recebendo as letras em string… qual é o problema… desculpe nao consigo enxergar o problema ai…

O problema está nessa linha. O que ocorre quando você passa nessa linha na segunda vez? O valor anterior se perde e fica só o valor novo.

achei que string era imutavel… realmente ta acontecendo isso… agora uma solução… vou pensar numa… hehehe…obrigad

Mas as strings são imutáveis. O que você provavelmente quer é isto aqui:


nome = nome + vc;

OK? Se funcionar, explique porque funcionou.

opa… exato…isso deve solucionar meu problema… mt obrigado moderador… e ja estou gostando deste forum

faz uma concatenação…

			nome =nome+ vc;

Pode ser também:

nome += vc;

Lembrando que a string continua mesmo imutável. A linha acima, ou a linha

nome = nome + vc

no fundo faz:
nome = new StringBuilder(nome).append(vc).toString();

Ou seja, cria uma classe auxiliar, junta o texto das duas string nessa classe, e gera uma nova string, contendo os dois valores juntos.