Cara para obter o tamanho de uma String utiliza o metodo lenght(); que vai te retornar um numero inteiro. Então vc pode pegar os dados da String e passar para um inteiro e comparar.
int aInteiro = a.lenght(); int bInteiro = b.lenght();
if (aInteiro > bInteiro) {
//Seu codigo
}else{
//Seu codigo
}
F_ix1
rei_nl_ds:
Cara para obter o tamanho de uma String utiliza o metodo lenght(); que vai te retornar um numero inteiro. Então vc pode pegar os dados da String e passar para um inteiro e comparar.
int aInteiro = a.lenght(); int bInteiro = b.lenght();
if (aInteiro > bInteiro) {
//Seu codigo
}else{
//Seu codigo
}
é… o objetivo não é muito bem esse
o algoritmo é o BubbleSort que organiza valores.
oque eu preciso é o seguinte!
no vetor[0] eu tenho o valor B
no vetor[1] eu tenho o valor C
dentro do if eu preciso saber qual é o maior! ou o menor
eu sei que existe uma syntax para isso só não lembro qual
pvrsouza
if(vetor[i].compareTo(vetor[j])<0)
F_ix1
Deixa eu ver se entendi
o prefixo “< 0” nesse caso seria o comparativo se eu quero saber se é maior ou menor?
pvrsouza
Deixa eu ver se entendi
o prefixo “< 0” nesse caso seria o comparativo se eu quero saber se é maior ou menor?
O método compareTo tem 03 tipos de retorno possíveis:
[list]-Um número inteiro negativo: Que representa que o objeto comparado é MENOR do que o outro.[/list]
[list]-Um zero: Que representa que os objetos comparados são iguais[/list]
[list]-Um número inteiro positivo: Que representa que o objeto comparado é MAIOR do que o outro.[/list]
Neste caso, se o retorno do método vetor[i].compareTo(vetor[j]) for menor que zero ( <0 ), ele será um número inteiro negativo. Portanto será menor.
E já testou? Funcionou conforme esperado?
Se sim, coloca teu post como Resolvido.
F_ix1
Desculpa o double mas estou enfrentando um erro aqui
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4
public void BubbleSort(String[] vetora){
int tam = vetor.length;
for(int i=0;i<tam-1;i++){
for(int j=0;j<tam-1;j++){
if(vetora[j].compareTo(vetora[j+1]) >0){
String aux;
aux = vetora[j];
vetor[j] = vetor[j+1];
vetora[j+1] = aux;
}
}
}
}
exatamente no if acusa o erro, oque estou fazendo de errado? O.o
valor de vetora[j] é “c”
valor de vetora[j+1] é “e”
DavidUser
na linha 2 você não esta pegando o comprimento de “vetora” e sim de “vetor” que nem mesmo foi declarado nesse código; a mesma troca de “vetor” por “vetora” acontece na linha 8.
Não tem a ver com seu problema mas o j deve variar de “0” a “tam - 1 - i” pois os i maiores já estarão no final a cada iteração, por tanto, ordenados.
pvrsouza
É. Teu código tá meio complicado.
Vou te passar a dica de como fazer o for…
for (int j = 0; j < tam; j++) {
for (int i = j + 1; i < tam; i++) {
O resto é contigo…
F_ix1
Nossa velho, que passada de erro patética a minha!!!
muito obrigado
isso me ajudou a lembrar que preciso ir dormi!!!
obrigado mesmo!!
pvrsouza:
É. Teu código tá meio complicado.
Vou te passar a dica de como fazer o for…
for (int j = 0; j < tam; j++) {
for (int i = j + 1; i < tam; i++) {
O resto é contigo…
:-D
Opa!!! assim fica mais bonito!!! obrigado pela dica brother