Como ordenar uma string?

5 respostas
S

Boa noite pessoal. Sou iniciante em java, pouco mais de um ano, por isso tenho alguns problemas com algumas lógicas que surgem.

Neste caso pegar uma String e fazer a ordenação dela.

[color=blue]Ex.: a String "JACK[/color]

Como fazer que a cada actionPerformed executado apartir de um botão, ela vá se ordenando da seguinte maneira:

–KJAC
–CKJA
–ACKJ
–JACK

Deve ser básico, mas estou tendo dificuldades para fazê-la.
Mas estou com dificuldades para acertar.
Desde ja agradeço.

5 Respostas

peczenyj

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

Vc pode pegar 2 substrings e concatenar na ordem que vc quiser, pense nisso :wink:

Marky.Vasconcelos

Também pode armazenar em uma array de chars e em um método passar um contador para o inicio da palavra e de acordo com isso voltar o resultado.

T

sand_man2:
Boa noite pessoal. Sou iniciante em java, pouco mais de um ano, por isso tenho alguns problemas com algumas lógicas que surgem.

Neste caso pegar uma String e fazer a ordenação dela.

[color=blue]Ex.: a String "JACK[/color]

Como fazer que a cada actionPerformed executado apartir de um botão, ela vá se ordenando da seguinte maneira:

–KJAC
–CKJA
–ACKJ
–JACK

Deve ser básico, mas estou tendo dificuldades para fazê-la.
Mas estou com dificuldades para acertar.
Desde ja agradeço.

Isso não é “ordenar” uma string. É simplesmente ir “rotacionando” a string. Vamos fazer uma tabelinha para essa string de 4 posições. Suponha que você tenha posto a string “JACK” na variável String s.

Desejado  Expressão Java que monta a string desejada
KJAC        s.substring (3) + s.substring (0, 3)
CKJA        s.substring (2) + s.substring (0, 2)
ACKJ        s.substring (1) + s.substring (0, 1)
JACK        s.substring (0) + s.substring (0, 0)

Entendeu? Agora monte a mesma tabela para uma string de 5 posições, e a seguir monte seu programa.

Lavieri
public int calculatePosition(int length, int start, int position) {
       int calc = start + position
       if (position >= length)
           calc = position - length;
       return calc;
}

public char charAt(String string,int start, int index) {
      return string.charAt(calculatePosition(stirng.length(),start,index));
}

ai por exemplo

String string = "JACK";
//para obter a propria palavra ou sja JACK o start é 0
int start = 0;
charAt(string,start,0) -> J
charAt(string,start,1) -> A
charAt(string,start,1) -> C
charAt(string,start,2) -> K

//para começar da proxima posição start = 1 ou seja apartir do A ... ACKJ
start = 1;
charAt(string,start,0) -> A
charAt(string,start,1) -> C
charAt(string,start,1) -> K
charAt(string,start,2) -> J

//para começar da proxima posição start = 2 ou seja apartir do C ...CKJA
start = 2;
charAt(string,start,0) -> C
charAt(string,start,1) -> K
charAt(string,start,1) -> J
charAt(string,start,2) -> A

//para começar da proxima posição start = 3 ou seja apartir do K ...KJAC
start = 3;
charAt(string,start,0) -> K
charAt(string,start,1) -> J
charAt(string,start,1) -> A
charAt(string,start,2) -> C
S

:slight_smile:

Pessoal valeu mesmo consegui fazer apartir do primeiro exemplo que me fez pensar um pouco, e sem exageiros:

Mais que meu próprio professor da faculdade.
Valeu pessoal pela dica e pela paciência com os novatos.

Grande abraço e muito obrigado!

Criado 26 de março de 2009
Ultima resposta 27 de mar. de 2009
Respostas 5
Participantes 5