Ir para conteúdo
Fórum Script Brasil
  • 0

Ordenaçao, Codigos


brunocasado

Pergunta

gente to com um problema para ordenar uns codigos...... não sei porque mais isso deveria ser altomatico mais vamos la....

vou por os codigos das maquinas para vocês verem, como está desordenado

modelo

33/4000-KIT

LS-0,8D-1

LS-0,8D-1/X

LS-0,8D-2

LS-0,8D-2/X

LS-0,8D-3

LS-0,8D-3/X

LS-1,3D-1

LS-1,3D-1/X

LS-1,3D-2

LS-1,3D-2/X

LS-1,3D-3

LS-1,3D-3/X

LS-1,8D-1

LS-1,8D-1/X

LS-1,8D-2

LS-1,8D-2/X

LS-1,8D-3

LS-1,8D-3/X

LS-1,8DA-1

LS-1,8DA-1/X

LS-1,8DA-2

LS-1,8DA-2/X

LS-12D-1

LS-12D-1/X

LS-12D-2

LS-12D-2/X

LS-12D-3

LS-12D-3/X

LS-12DA-1

LS-12DA-1/X

LS-12DA-2

LS-12DA-2/X

LS-16D-1

LS-16D-1/X

LS-16D-2

LS-16D-2/X

LS-16D-3

LS-16D-3/X

LS-16DA-1

LS-16DA-1/X

LS-16DA-2

LS-16DA-2/X

LS-17D-2

LS-17D-2/X

LS-17DA-2

LS-17DA-2/X

LS-26D-2

LS-26D-2/X

LS-26DA-2

LS-26DA-2/X

LS-35D-2

LS-35D-2/X

LS-35DA-2

LS-35DA-2/X

LS-3D-1

LS-3D-1/X

LS-3D-2

LS-3D-2/X

LS-3D-3

LS-3D-3/X

LS-3DA-1

LS-3DA-1/X

LS-3DA-2

LS-3DA-2/X

LS-4,7D-1

LS-4,7D-1/X

LS-4,7D-2

LS-4,7D-2/X

LS-4,7D-3

LS-4,7D-3/X

LS-4,7DA-1

LS-4,7DA-1/X

LS-4,7DA-2

LS-4,7DA-2/X

LS-44D-2

LS-44D-2/X

LS-44DA-2

LS-44DA-2/X

LS-55D-2

LS-55D-2/X

LS-55DA-2

LS-55DA-2/X

LS-8D-1

LS-8D-1/X

LS-8D-2

LS-8D-2/X

LS-8D-3

LS-8D-3/X

LS-8DA-1

LS-8DA-1/X

LS-8DA-2

LS-8DA-2/X

LSE-100DA-2

se vocês perceberem, comesa com 0,8 e vai ateh 55 mais tipo c vocês notarem no final ta 55 e depois vem 8.... tipo ele so ordena pelo primeiro numero deveria contar no caso o 55 os 2 numeros.... tem algum jeito de ordenar isso certo?

otro exemplo c vocês forem ateh o 1,8 depois desse vao notar que vai vir o 12.... mais na realidade teria q vir o 3......

acontece que na realidade ele ordena assim: 1,12,13,14,2,21,22,3

como poderei ordenar corretamente?: 1,2,3,4,5,6,.....12,13

Editado por brunocasado
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Bom como você mesmo sabe isto está em formato alfanumerico, logo ele será ordenando como tal, o que você pode fazer é criar um campo a mais de preferencia numerico e escrever a ordem de cada um, isso funciona, porém, não sei se compensa o esforço...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Bruno --

bom, eu pensei nisso mrmalj, mas no meu projeto a pessoa poderá adicionar novos modelos.... isso implicaria na ordenação.... não teria um outro jeito de estar fazendo isso? derrepente alguma expressao que pega apenas os números e depois faz a ordenação deles e volta ao codigo....

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Thiago Dias

brunocasado,

voce esta usando que linguagem?

estava com um problema parecido, passei por aqui, vi o post sem nenhuma resposta que resolvesse seu problema, e como eu resolvi o meu, não custa te passar.

bom, esta em java meu codigo, ve se te ajuda, funcionou perfeitamente pra mim :)

não conhecia essa interface maravilhosa!!! :)

abracos

// codigo em java

public void listarComponentes(ActionEvent e) {

try {

this.setComponentes(super.listItemPopular());

Comparator<ItemPopular> comp = new Comparator<ItemPopular>() {

public int compare(ItemPopular o1, ItemPopular o2) {

int ret=0 ;

if (

(soNumero(o1.getIdPopular())>0)

&&

(soNumero(o2.getIdPopular())>0)

)

{

ret = soNumero(o1.getIdPopular()) - soNumero(o2.getIdPopular());

}else{

ret = soLetras("0"+o1.getIdPopular()).compareTo(soLetras("0"+o2.getIdPopular()));

}

if (ret == 0) {

ret = soLetras(o1.getIdPopular()).compareTo(soLetras(o2.getIdPopular()));

}

return ret;

}

public int soNumero(String s) {

return Integer.valueOf(s.replaceAll("\\D", ""));

}

public String soLetras(String s) {

String x=s;

try{

x = s.replaceAll("\\d", "");

}catch (Exception ex){

s+="0";

x = s.replaceAll("\\d", "");

}

return x;

}

};

Collections.sort(this.componentes,comp);

} catch (Exception ex) {

}

}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...