Percorrer e Comparar Array de String

23 respostas
danilo.silva

Estou criando uma criptografia básica, baseada em comparação de arrays Strings.

Tem alguma maneira que eu possa percorrer meus elementos do array e ir comparando com meus dados de entrada?

Por exemplo:

String[] chave = {"Z","E","N","I","T","P","O","L","A","R"};
    String[] word = {"D","A","N","I","L","O"};

Entro com a Palavra Danilo ele compara a primeira letra “D” com a demais

Se “D” for igual a “Z” faça tal e se não for passe para a próxima, ai então comparará com “E” e assim por diante, eu pensei no uso de um for para percorrer, seria a melhor forma?

Obrigado pela atenção

23 Respostas

jean_gleison1

Cara com certeza tem, a classe String tem uma diversidade de métodos que te ajudam em tarefas como essa.
Use o metodo: “equals()”, ele serve para comparar dois objetos.
se vc está trabalhando com array de String não é vantajoso vc colocar cada letra da palvra em uma posição do array de String, a não ser vc trabalhase com char, a melhor sugestão é q vc faça assim

String[] chave = {"ZENITPOLAR"};
String[] word = {"DANILO"}; 

if(chave[0].equals(word[0]))//se as Strings forem iguais
{
        System.out.println("Acesso permitido!");
    }else{
        System.out.println("Acesso negado!");
}

eu aconcelho a vc dar uma estudadinha nas API’s blz
espero ter ajudado

danilo.silva

Entendi, mas pensei em fazer assim, porque eu quero fazer desse jeito:

ZENIT
POLAR

é minha chave

DANILO

a informação que eu quero que seja “criptografada”

Vamos lá:

Verifico se a letra D tem na palavra zenit, como não tem eu vejo na polar, não tem entao eu guardo o “D”, faço com o proximo, verifico se tem “A” no ZENIT, como nao tem passo para o proximo, existe a letra A no POLAR está na posição numero 4, então eu guardarei a posição numero 4 da palavra de cima, que é o I e assim por diante

o nome Danilo ficaria DILANE
CASA ficara CISI e assim por diante.

Esse é meu objetivo, eu pensei em entrar com uma string e quebrar no vetor, mas isso tenho que procurar tbm, alguém tem alguma ideia diferente da minha?

danilo.silva

alguém?

L

brinca ai

public static void main(String[] args) {
		System.out.println(crypt("DANILO"));
		System.out.println(crypt("CASA"));
	}

	static String crypt(String s) {
		final StringBuilder sb = new StringBuilder();
		for (char c : s.toCharArray()) {
			sb.append(crypt(c));
		}
		return sb.toString();
	}

	static char crypt(char c) {
		final String[] palavras = { "ZENIT", "POLAR" };
		for (int i = 0; i < palavras.length; i++) {
			final int idx = palavras[i].indexOf(c);
			if (idx < 0) {
				continue;
			}
			// o que fazer quando ja achar a palavra na posicao 0?! estou
			// pegando da ultima string
			final String palavraAnterior = i > 0 ? palavras[i - 1]
					: palavras[palavras.length - 1];
			// o que fazer quando nao existe posicao idx na string anterior?
			// tipo acha posicao 4 mas a string anterior tem tamanho 3
			return palavraAnterior.charAt(idx);
		}
		return c;
	}
DavidUser

aconselho a quebrar todas as letras das palavras separadamente, depois vc faz o teste usando for e vai brincando fazendo o resto. Até podia te entregar mastigado mais acho q não é oq vc quer.

DavidUser

usa um charAt e um for pra quebrar acho q é o método mais simples.

L

Bom dia,

Estou com dificuldade de trabalhar com Arrays. Gostaria da ajuda de vocês.
Preciso gravar em uma Array (String) dados de em um banco.

Exemplo:
Tenho uma tabela Pessoa. No 1º indice gostaria de gravar no array: Nome, Endereço, Bairro, Cidade e Estado.
E assim por diante até percorrer todo a minha query, ou seja, ficaria desta forma o array:

0 Joao Rua Joao, 100 Bairro Joao São Paulo SP
1 Jose Rua Jose, 500 Bairro Jose Rio de Janeiro RJ
2 Marcio Rua Marcio, 1000 Bairro Marcio Goias GO
3 Carlos Rua Carlos, 2000 Bairro Carlos Minas Gerais MG
4 Renato Rua Renato, 3000 Bairro Renato Mato Grosso MT

Lembrando que, não tenho o tamanho do array em linhas só a qtd de colunas.

Algum pode me dar alguma dica ou um exemplo de como posso resolver isso.

Depois de ler alguns artigos, apostila e etc…
Acho que teoricamente consegui entender o conceito de arrays, mais na hora de colocar em pratica estou com um pouco de dificuldade.

Desde muito obrigado.
Leandro

L

Bom dia,

Estou com dificuldade de trabalhar com Arrays. Gostaria da ajuda de vocês.
Preciso gravar em uma Array (String) dados de em um banco.

Exemplo:
Tenho uma tabela Pessoa. No 1º indice gostaria de gravar no array: Nome, Endereço, Bairro, Cidade e Estado.
E assim por diante até percorrer todo a minha query, ou seja, ficaria desta forma o array:

0—Joao------Rua Joao, 100----------Bairro Joao----São Paulo-------SP
1—Jose— ---Rua Jose, 500----------Bairro Jose----Rio de Janeiro–RJ
2—Marcio----Rua Marcio, 1000-----Bairro Marcio–Goias-----------GO
3—Carlos----Rua Carlos, 2000-----Bairro Carlos–Minas Gerais—MG
4—Renato—Rua Renato, 3000----Bairro Renato–Mato Grosso—MT

Lembrando que, não tenho o tamanho do array em linhas só a qtd de colunas.

Algum pode me dar alguma dica ou um exemplo de como posso resolver isso.

Depois de ler alguns artigos, apostila e etc…
Acho que teoricamente consegui entender o conceito de arrays, mais na hora de colocar em pratica estou com um pouco de dificuldade.

Desde muito obrigado.
Leandro

edmarr
leandrooooo:
Bom dia,

Estou com dificuldade de trabalhar com Arrays. Gostaria da ajuda de vocês.
Preciso gravar em uma Array (String) dados de em um banco.

Exemplo:
Tenho uma tabela Pessoa. No 1º indice gostaria de gravar no array: Nome, Endereço, Bairro, Cidade e Estado.
E assim por diante até percorrer todo a minha query, ou seja, ficaria desta forma o array:

0---Joao------Rua Joao, 100----------Bairro Joao----São Paulo-------SP
1---Jose--- ---Rua Jose, 500----------Bairro Jose----Rio de Janeiro--RJ
2---Marcio----Rua Marcio, 1000-----Bairro Marcio--Goias-----------GO
3---Carlos----Rua Carlos, 2000-----Bairro Carlos--Minas Gerais---MG
4---Renato---Rua Renato, 3000----Bairro Renato--Mato Grosso---MT

Lembrando que, não tenho o tamanho do array em linhas só a qtd de colunas.

Algum pode me dar alguma dica ou um exemplo de como posso resolver isso.

Depois de ler alguns artigos, apostila e etc...
Acho que teoricamente consegui entender o conceito de arrays, mais na hora de colocar em pratica estou com um pouco de dificuldade.

Desde muito obrigado.
Leandro

Primeiro olha o flood .
Segundo vamos la =) .
Voçe já deve ter uma classe parecida com esta.

class TestArray{
	private	String nome ;
	private	String endereco;
	private	String setor;
	private String cidade;
	private String estado;


	public String getNome(){
		return nome;
	}
	public String getEndereco(){
		return endereco;
	}
	public String getSetor(){
		return setor;
	}
	public String getCidade(){
		return cidade;
	}
	public String getEstado(){
		return estado;
	}

	public void setNome(String nome){
		this.nome = nome;
	}
	public void setEndereco(String endereco){
		this.endereco = endereco;
	}
	public void setSetor(String setor){
		this.setor = setor;
	}
	public void setCidade(String cidade){
		this.cidade = cidade;
	}
	public void setEstado(String estado){
		this.estado = estado;
	}
}

Então Voçe vai ter um metodo parecido com o seguinte .

public List getArray( String sql ) {
        List listaPesquisa = new ArrayList();
        Connection con      = null;
        PreparedStatement st = null;
        ResultSet res        = null;
        
        try {
            con = getConnection(usuarioDB, senhaDB);
            st  = con.prepareStatement( sql );
            res = st.executeQuery();
            
            while ( res.next() ) {
              TesteArray  lista = new TesteArray();
              lista.setNome(res.getString( 1 ));
              lista.setEndereco(res.getString( 2 ));
              lista.setSetor(res.getString( 3 ));
              lista.setCidade(res.getString( 4 ));
              lista.setEstado(res.getString( 5 ));

              listaPesquisa.add(lista);
            }
            
            res.close();
            st.close();
        }catch(SQLException e){
            System.out.print(e.getMessage());
        } finally {
            try{
                con.close();
            }catch(Exception t){
                System.out.print(t.getMessage());
            }
        }
        
        return listaPesquisa;
    }

Deste jeito voçe alimentou o seu ArrayList, agora basta percorrer utilizando um simples laço for ou um foreach , chamando os métodos get's para extração dos dados.

Obs : Acho melhor voçe trabalhar com ArrayList do que diretamente com array .

Espero ter ajudado . :)

L

Edmar,

Obrigado pela resposta.
Vou estuda-la.

Leandro

edmarr

leandrooooo:
Edmar,

Obrigado pela resposta.
Vou estuda-la.

Leandro

Lembrando … como utilizei List , vc pode percorrer usando Interator .

L

Edmar,

Está tudo rodando bunitinho…hehehehe…

Agora, para imprimir em ordem crescente esse dados, como faço?

Por exemplo, em ordem crescente por bairro.

É possivél?

Obrigado por enquanto.

edmarr

leandrooooo:
Edmar,

Está tudo rodando bunitinho…hehehehe…

Agora, para imprimir em ordem crescente esse dados, como faço?

Por exemplo, em ordem crescente por bairro.

É possivél?

Obrigado por enquanto.

Bom vc ja pode tratar no propio sql que vc usou para listar no banco , usando um Order By .
Ao popular a lista vc ira popular da maneira como esta no select . :smiley:

L

É que agora estou pegando informações de duas tabelas e alocando dentro do mesmo arrayLists.

L

Não posso fazer um join entre as tabelas.

E nas duas tabelas tenho um campo hora, e por esse campos que gostaria de ordenar.

edmarr

leandrooooo:
É que agora estou pegando informações de duas tabelas e alocando dentro do mesmo arrayLists.


Como assim … Explique-se melhor .

L

Ok…Vamos lá…esses iniciantes (neste caso eu) da um trabalho…hehehehe…

Tenho uma tabela chamada Conexao e os campos:
data, hora, descrie proxpedido

Outra tabela chamada Pedido e os campos:
data, horape, codcli e nomecli

Pego os dados das duas tabelas e add dentro do arraylist.

Depois quero imprimir em order crescente por hora.

edmarr

leandrooooo:
Ok…Vamos lá…esses iniciantes (neste caso eu) da um trabalho…hehehehe…

Tenho uma tabela chamada Conexao e os campos:
data, hora, descrie proxpedido

Outra tabela chamada Pedido e os campos:
data, horape, codcli e nomecli

Pego os dados das duas tabelas e add dentro do arraylist.

Depois quero imprimir em order crescente por hora.

Ah algum relacionamento entre eles ?

L

Não tem.
Mais preciso mostrar essa duas informação na mesma tela.

edmarr

leandrooooo:
Não tem.
Mais preciso mostrar essa duas informação na mesma tela.

Simples ue … monte dois metodos de busca diferentes , adicionando em arraysLists distintos .
e utilize estruturas de controle para controle dos dois objetos .

L

Ok, vou tentar desenvolver desta forma.

depois post para falar no que deu.

Valew.

L

Edmar, bom dia!
Estou com dificuldades.
Por favor, se tiver, poste um exemplo?
Obrigado.
Leandro

edmarr

leandrooooo:
Edmar, bom dia!
Estou com dificuldades.
Por favor, se tiver, poste um exemplo?
Obrigado.
Leandro

Por favor … pare com o flood .
Mas não entendi de que vc quer um exemplo.
Pois basta vc adicionar um order by na consulta sql que vc esta ultilizando .
mas se vc usar adicionar utdo no mesmo arrayList vc tera problemas … a nao ser que vc faça um instanceof em toda validação .

Criado 20 de abril de 2009
Ultima resposta 29 de jun. de 2009
Respostas 23
Participantes 6