Comparação de Strings

18 respostas
raisabc

Boa Tarde amigos!

Faço faculdade de Análise e Desenvolvimento de Sistemas, e eu estou com uma enorme dúvida!
Meu professor de Java passou um exercício para apresentarmos na sala, valendo 2 pontos. e no exercício ele pede o seguinte:

Pesquise o método para comparar se uma string é
maior ou menor que a outra e faça o seguinte trabalho

Nome do método e descrição;
Exemplos;

Um programa para ordenar um vetor String.
O programa deve receber a quantidade de nomes, os nomes, ordenar o vetor e
depois mostrar a lista de nomes ordenados. Toda entrada e saída de dados deverá
ser feita usando os métodos da classe JOptionPane.

Alguém pode me ajudar, dar dica me explicar ou algo do tipo, COMO VOU FAZER ESSE PROGRAMA.
estou a dias tentando e não sai nada!

Desde já agradeço!

Beijooss

A minha dúvida é, como vou desenvolver esse programa :

Um programa para ordenar um vetor String.
O programa deve receber a quantidade de nomes, os nomes, ordenar o vetor e
depois mostrar a lista de nomes ordenados. Toda entrada e saída de dados deverá
ser feita usando os métodos da classe JOptionPane.

18 Respostas

dalvac

Não ficou claro qual é a dúvida!

Editando:
Desculpe, não tinha carregado tudo qdo eu escrevi a msg anterior!

Infelizmente estou de saída, se ninguém responder até mais tarde eu respondo!
Abs!

fabim

Os links abaixo solucionam todas as suas duvidas:

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JOptionPane.html

T

String.compareTo
Arrays.sort

raisabc

fabim, não entendi nada!

gui_sv

é a documentação do Java, explica exatamente o que faz cada metodo !

mario.fts

vc vai ter que usar o método compareTo() para realizar a comparação entre as strings. o retorno do método é :
< 0 se a String for “menor”
= 0 se for igual

0 se for “maior”

maior e menor neste caso se refere a ordem alfabética.

exemplo:

String nome1 = "Albert";
			String nome2 = "Zico";
			
			System.out.println(nome1.compareTo(nome2));
			System.out.println(nome1.compareTo(nome1));
			System.out.println(nome2.compareTo(nome1));

EDIT: esqueci de colocar a saída.
a saída será:

-25 // pq Albert vem antes de Zico
0 // pq eu comparei Albert com Albert
25 // Pq Zico vem depois de Albert

mario.fts

Quanto ao Array.sort, é um étodo que organiza um array. (No caso de Strings, em ordem alfabética)

A dúvida é se vc pode usar isso. (na minha faculdade o professor não deixava usar os frameworks no começo do curso, a intenção era aprender como fazer na mão.)

Mas compensa vc dar uma lida na documentação que o thingol e o fabim colocaram. se vc não entende em inglês, procure no google que vc acha traduzida.

abraços

Tsunami1

Raisabc, eu tive um exercicio igualzinho a esse na facul onde teriamos que ordenar um vetor de strings. Eu entro em contado com vc pra tentar te ajudar…
(Obs: lá o prof não deixou usar Arrays.sort)

Se você quiser poupar tempo e raciocínio, utilize Arrays.sort;

Motivo do edit: percebi que disse umas asneiras quando fui rever no Eclipse…

T

Fiz esse quando comecei a aprender java, v se te ajuda.

raisabc

GENTE, SOCORRO PELO AMOR DE DEUS!

Eu sei q vcs estao tentando me ajudar, mas não estou conseguindo entender!
Não estou sabendo como ficará o código do programa!

javaroot

Creio que todas as dicas e exemplos dados anteriormente serão úteis para você resolver o exercício.
Tente resolvê-lo, e se surgirem mais dúvidas é só postá-las aqui no GUJ, sempre tem alguém disposto a ajudar =)

Boa sorte.
[]'s

v1c70r_f

raisabc:
GENTE, SOCORRO PELO AMOR DE DEUS!

Eu sei q vcs estao tentando me ajudar, mas não estou conseguindo entender!
Não estou sabendo como ficará o código do programa!

Certo, por onde começou??

O programa deve receber a quantidade de nomes e os nomes…
Faça um JOptionPane para receber a quantidade de nomes, ao clicar você armazena essa variável.
Crie um array com o tamanho e faça um for para cada posição um JOptionPane para armazenar o nome

int quantidadeDeNomes = TAMANHO QUE RECEBEU DO PRIMEIRO JOptionPane;
String[] nomes = new String[quantidadeDeNomes];

for(int i = 0; i < quantidadeDeNomes; i++){
	// abre JOptionPane para receber o nome
	nomes[i] = nome recebido do JOptionPane
}

O próximo passo é ordenar o vetor… aí você utiliza o Arrays.sort(), depois imprime o vetor em um JOptionPane.

Outra alternativa é nem precisar receber a quantidades de nomes, apenas um JOptionPane pode receber todos os nomes, separados por um delimitador.
Para separar os nomes você poderia utilizar a classe StringUtils do apache commons lang, ou o StringTokenizer, do próprio java, com o StringUtils é mais fácil porém você tem que adicionar o commons lang no projeto, segue um exemplo de uso do StringTokenizer

public static void main(String args[]){
		// neste caso não precisa passar o delimitador, é o próprio espaço
		StringTokenizer st = new StringTokenizer("nome1 nome2 nome3");

		// o método countTokens() do StringTokenizer trás a quantidade de nós existe na string, no caso, a quantidade de nomes
		String[] arrayDeNomes = new String[st.countTokens()];
	
		int i = 0;
		while(st.hasMoreElements()){
			String nome = (String) st.nextElement();
			// adiciona no array
			arrayDeNomes[i] = nome;
			i++;
		}

		// se quisesse separar por vírgula seria instanciado assim
		// StringTokenizer st = new StringTokenizer("nome1 sobrenome,nome2 sobrenome, nome3 bla bla bla", ",");
		// o primeiro parâmetro "nome1 sobrenome,nome2 sobrenome, nome3 bla bla bla" são os nomes separados por vírgula e o segundo
		// é o delimitador, no caso a vírgula

	}

Tenta fazer o código… se estiver com algum erro posta aki, ok?

Fabiolafas

Eu e a Raisa fazemos faculdade juntas, o nosso problema que agente não entende muito de java ainda, pois começamos agora, estamos no 2º periodo.

Vou colocar o exercicio aqui para vcs entenderem melhor!

Obrigada!

fabim

Fabiolafas:
Eu e a Raisa fazemos faculdade juntas, o nosso problema que agente não entende muito de java ainda, pois começamos agora, estamos no 2º periodo.

Vou colocar o exercicio aqui para vcs entenderem melhor!

Obrigada!

Recorram ao professor de vcs, para que ele possa sanar as duvidas e ajudá-las a cumprir aquilo que pede a disciplina.

sumihara

Raissa,

vê se o código abaixo te ajuda.

import javax.swing.*; 
import java.util.Arrays; 

 public class TesteOrdenacao {
 
     public static void main( String args[] ) {
         
    	 String[] nome = new String[5]; // Vetor com 5 posições  	  
    	 
         for(int i=0; i<nome.length; i++) {
            nome[i] = JOptionPane.showInputDialog("Digite o nome: ");
         }
    	 
         
         Arrays.sort(nome);
             	
         for(int i=0; i<nome.length; i++) {
             System.out.println(nome[i] );
         }
          
     }
 }
v1c70r_f

fabim:
Fabiolafas:
Eu e a Raisa fazemos faculdade juntas, o nosso problema que agente não entende muito de java ainda, pois começamos agora, estamos no 2º periodo.

Vou colocar o exercicio aqui para vcs entenderem melhor!

Obrigada!

:arrow: Recorram ao professor de vcs, para que ele possa sanar as duvidas e ajudá-las a cumprir aquilo que pede a disciplina.

É isso aew.

Fabiolafas
sumihara:
Raissa,

vê se o código abaixo te ajuda.

import javax.swing.*; 
import java.util.Arrays; 

 public class TesteOrdenacao {
 
     public static void main( String args[] ) {
         
    	 String[] nome = new String[5]; // Vetor com 5 posições  	  
    	 
         for(int i=0; i<nome.length; i++) {
            nome[i] = JOptionPane.showInputDialog("Digite o nome: ");
         }
    	 
         
         Arrays.sort(nome);
             	
         for(int i=0; i<nome.length; i++) {
             System.out.println(nome[i] );
         }
          
     }
 }

Muito obrigada Sumihara,
Vc nos ajudou muito!!

Skull_Drummer
Fabiolafas:
sumihara:
Raissa,

vê se o código abaixo te ajuda.

import javax.swing.*; 
import java.util.Arrays; 

 public class TesteOrdenacao {
 
     public static void main( String args[] ) {
         
    	 String[] nome = new String[5]; // Vetor com 5 posições  	  
    	 
         for(int i=0; i<nome.length; i++) {
            nome[i] = JOptionPane.showInputDialog("Digite o nome: ");
         }
    	 
         
         Arrays.sort(nome);
             	
         for(int i=0; i<nome.length; i++) {
             System.out.println(nome[i] );
         }
          
     }
 }

Muito obrigada Sumihara,
Vc nos ajudou muito!!


Agora procure entender o código, peça ajuda ao seu professor para poder entender o "passo-a-passo".

Criado 14 de outubro de 2008
Ultima resposta 17 de out. de 2008
Respostas 18
Participantes 13