Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
greyback

Receber uma string, ordenar por ordem alfabética e guardar o indice

Recommended Posts

greyback

Boas... 

É o seguinte... :(

Eu quero receber uma string e quero ordenar as letras dessa string por ordem alfabética, enquanto num array está a receber os indices dessa mesma ordenação ...

Alguem me pode ajudaR?

import java.util.*;

class compress {

public static int[]  Ordenarstr (String string_)
{
	int i = 0; int j = 0; int temp = 0;
	char valor;
	int[] letras = new int[string_.length()];
	for (i = 0; i < string_.length(); i++) {  
             for (j = 0; j < i; j++) {  
   
                 if (string_.charAt(i) < string_.charAt(j))
			 {  
                    temp = i;  
                    letras[i] = j;  
                    letras[j] = temp;  
				System.out.println(i+j);
			}
		}
	}

		// Imprimir Ordem
	for (int a=0; a<letras.length; a++)
		{
			System.out.println(string_.charAt(letras[a]));
		}
	return letras;
}


public static void main (String args[])
{
	String string_ = new String ("Micael");
	int[] string_1 = new int[string_.length()];
	string_1 = Ordenarstr (string_);
	System.out.println("String Introduzida: "+string_);
}

}

E já agora como posso imprimir todo o conteudo de um array?

Print array? ...

Cumps, GreyBack

Share this post


Link to post
Share on other sites
magician
for(int x : string_1){
    System.out.println("-" + x);
}


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
greyback

for(int x : string_1){
    System.out.println("-" + x);
}

Desculpa, mas isto é resposta a como imprimir todo o array certo?

Não percebi onde se adequa isso :X

Share this post


Link to post
Share on other sites
magician

O x é 1 iterador, mas podes fazer antes

for(int i = 0 < i < string_1.legth;i++){
    System.out.println(string_1[i]);
}

O array em Java não tem o método toString logo o System.out não consegue converter o array de forma legível dai teres de ser tua a processa-lo.


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
greyback

Desculpa, mas não te estou a perceber muito bem ... Podes adequar essa parte de código ao meu código e por ai tudo sff ?

Share this post


Link to post
Share on other sites
greyback

O meu problema é que esse código não está a introduzir os indices correctamente :X

Ele está a falhar na ordenação das letras da string, e respectimente os indices :S

Share this post


Link to post
Share on other sites
magician

Esquece reparei agora numa coisa.

Por mero acaso não estás a tentar implementar o algoritmo de huffman ou estás ? É que usares arrays desta forma não é a melhor maneira.

Passando à frente queres receber uma string tipo "xyzabc" passar para abcxyz e depois? não percebi onde entra o outro array com índices :s


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
greyback

algoritmo de huffman ou estás ?

Não faço a minima ideia do que seja isso :(

Passando à frente queres receber uma string tipo "xyzabc" passar para abcxyz e depois? não percebi onde entra o outro array com índices :s

sim,sim é isso :cheesygrin:

Eu estou a fazer um compressor .... E primeiro tenho de ordenar as letras e guardar os indices da ordem alfabetica ... sem alterar a string original...

Percebes? Para depois atráves desses indices começar a tentativa da compressão :)

ps: Responde a minha pm sff

Share this post


Link to post
Share on other sites
magician

Lá está compressão era o que suspeitava lol

Eu já vi esse algoritmo só não me lembro do nome :s

Em todo o caso é complicado fazeres isso assim só com arrays Objectos seria melhor, talvez objectos que levasse a letra os índices onde estas ocorrem.


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
greyback

Lá está compressão era o que suspeitava lol

Eu já vi esse algoritmo só não me lembro do nome :s

Em todo o caso é complicado fazeres isso assim só com arrays Objectos seria melhor, talvez objectos que levasse a letra os índices onde estas ocorrem.

Será que me podes ajudaR? :X

Share this post


Link to post
Share on other sites
magician

Pá eu não te posso fazer isso mesmo que quisesse não tenho disponibilidade para isso :\

Estou a ver é que não conheces bem a linguagem e fazer algo assim desse nivel embora não seja nada por ai além mas convem um conhecimento mínimo de POO em Java :(


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.