Gerar nomes aleatoriamente

8 respostas
S

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

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

8 Respostas

T

Dê uma olhada nesta linha:

nome = vc;
S

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

T

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.

S

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

T

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

nome = nome + vc;

OK? Se funcionar, explique porque funcionou.

S

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

Jauns

faz uma concatenação…

nome =nome+ vc;
ViniGodoy

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.

Criado 12 de março de 2009
Ultima resposta 12 de mar. de 2009
Respostas 8
Participantes 4