Ainda no gerador de domínios

9 respostas
L

Então, configurei um gerador de palavras e coloquei essas palavras em um ArrayList. Agora preciso acrescentar a cada palavra dessa os domínios. Por exemplo, o gerador de palavras tem lá em sua lista a palavra “pão” que ele gerou. Preciso acrescentar a essa palavra os domínios “.com.br”, “.com”, “.org”, etc.

Tem como fazer isso para se aplicar a todos as palavras que estão no Arraylist?
Já tenho a clase geradora e a classe teste pronta. Preciso de uma forma de acrescentar os dóminios-padrão a todos os elementos do ArrayList

9 Respostas

TerraSkilll

É só concatenação de String que você está tendo dificuldades? Se sim, qual dificuldade em específico?

Um algoritmo qualquer:

List<String> palavras = new ArrayList<String>();

palavras.add("pão");
palavras.add("queijo");
palavras.add("explicarmelhoroquequerfazerquantoescreverapergunta");

List<String> sufixos = new ArrayList<String>();

sufixos.add(".com");
sufixos.add(".org");
sufixos.add(".com.br");

List<String> dominios = new ArrayList<String>();

for (String s : palavras){
  for (String d : sufixos){
    dominios.add(s + d);
  }
}

for (String url : dominios){
  System.out.println(url);
}

É isso?

Abraço.

L

Seguinte. Meu projeto tem 3 classes. Uma está gerando 10 palavras aleatórias a cada execução e colocando-as em um ArrayList. A segunda classe deveria pegar todos as palavras desse Array e acrescentar os domínios nelas, colocando-as em um novo ArrayList. A terceira classe está apenas chamando os metódos de gerar palavras e gerar domínios, para apresentar o resultado no console.

Então, preciso de uma forma mais prática para acrescentar os domínios a todos as palavras que acabaram de ser geradas.

TerraSkilll

Você não especifica o que seria forma mais prática. O que você já tem feito?

Sua dificuldade é acessar um ArrayList que está dentro de uma classe? Pegar as Strings de dentro dos ArrayLists (como acabei de mostrar)? Vai exibir isso em uma tela (Jframe, página web) ou o quê? Já tem um código funcionando mas acha que ele não está bom o bastante?

Abraço.

L
Minha dificuldade não é acessar o ArrayList, é transformar todos os elementos em domínios (.com.br, .com, etc…) de uma  vez.

Vou exibir o resultado no próprio console do eclipse.

O processo  está quase completo…

1º gerar palavras aleatórias e colocar dentro de um ArrayList.

<strong> carregar o array list em outra classe e gerar domínios com as palavras dentro desse Array  esse o problema)</strong> gerar um novo arraylist com os domínios criados;

4º exibir os domínios no console.
TerraSkilll

O que você quer dizer com gerar domínio? É criar strings com URLs completas? Ou é usar essas strings combinadas para fazer alguma outra coisa?

Exemplo: num List você tem a string “teste” e em outro as strings “.com.br” e “.org”, daí num terceiro você gera 2 strings, uma “teste.com.br” e outra “teste.org”.

O que você quer dizer com “de uma só vez”? Se você tem listas (arrays comuns, ArrayList, LinkedList, etc), precisa percorrer os elementos um a um para acessar seus valores. Pode simplificar o código escrito (usando lambdas, por exemplo), mas isso não muda o fato de que os elementos são processados um a um.

Abraço.

L

Para cada string que foi gerada no gerador de palavras e está armazenada no arrayList1, serão 4 strings no gerdor de domínios armazenadas ArrayList2. exemplo:
ArrayList1 (gerador de palavras): pão; bolo…
ArrayList2 (gerador de domínios): pão.com.br, pão .com, pão.org, pão.net; bolo.com.br, bolo.com, bolo.org, bolo.net
Assim com todas as outras paralavras geradas.

procuro uma forma de adiconar os domínios as Strings geradas no primeiro momento.
Eu preciso que o arraylist 2 apareça no console.

TerraSkilll

Você viu o exemplo que postei lá em cima? Ele faz exatamente isso (veja aqui).

O fato de os ArrayLists estarem em classes distintas não muda muita coisa.

Abraço.

drsmachado

@lsramos, creio que você deve voltar um passo e começar reconstruindo a lógica de como a aplicação vai funcionar.
Construa o algoritmo, faça os testes de mesa necessários e verifique se está tudo conforme você espera.
Depois, coloque isso em código java.

L

Tentei aplicar o modelo, ficou dessa forma. Mas ainda assim, ele não gera os domínios.

package controle;

import java.util.ArrayList;
import java.util.List;

public class ControladorDominio {

static ArrayList<String> listaDominio = new ArrayList<String>();
    
    static ControladorPalavra palavraGerada = new ControladorPalavra(); 
    static List<String> lista = new ArrayList<String>();    

    public static void gerarDominio() {
    
    List<String> palavra = new ArrayList<String>();

    palavra.addAll(lista);
     
    List<String> sufixo = new ArrayList<String>();
     
    sufixo.add(".com.br");
    sufixo.add(".com");
    sufixo.add(".org");
    sufixo.add(".net");
     
    List<String> dominio = new ArrayList<String>();
     
    for (String s : palavra){
      for (String d : sufixo){
        dominio.add(s + d);
      }
    }
     
    for (String dominioGerado : dominio){
      listaDominio.add(dominioGerado);
    }
}

}

Criado 21 de fevereiro de 2017
Ultima resposta 21 de fev. de 2017
Respostas 9
Participantes 3