Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Confronto tra quattro stringhe

    Buonasera ragazzi..
    ho un problema con un programma java secondo il quale dovrei ordinare 4 stringhe in base all'Ordinamento Lessicografico .
    Il costruttore l'ho progettato, ora il problema sta nel confronto e nel tener traccia della stringa minima e massima.Mi aiuterete un pochino??

    public class Ord_Less {

    public Ord_Less(String a,String b,String c,String d)
    {
    String prima=a;
    String seconda=b;
    String terza=c;
    String quarta=d;
    }

    public void comparString()
    {
    .....
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,281

    Re: Confronto tra quattro stringhe

    Originariamente inviato da OaCkLeY86
    ho un problema con un programma java secondo il quale dovrei ordinare 4 stringhe in base all'Ordinamento Lessicografico .
    Le metti in un array e poi usi Arrays.sort() (Arrays è nel package java.util).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    non ho ancora studiato gli array in java...per ora posso utilizzare il metodo compareTo per comparare stringhe..xò non so come usarlo con gli if appropiati..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,281
    Originariamente inviato da OaCkLeY86
    non ho ancora studiato gli array in java...per ora posso utilizzare il metodo compareTo per comparare stringhe..xò non so come usarlo con gli if appropiati..
    La classe String implementa l'interfaccia Comparable<String> quindi ha il metodo compareTo(). La documentazione di Comparable è molto chiara. In generale se hai:

    obj1.compareTo (obj2)

    allora compareTo ti può restituire:

    < 0 se obj1 < obj2
    = 0 se obj1 = obj2
    > 0 se obj1 > obj2

    Detto questo, nel tuo caso devi solo fare un certo numero di if testando il risultato di compareTo().

    Tu hai 4 oggetti, a b c d. Cosa faresti? Pensaci un attimo. Per iniziare devi fare in modo che in 'a' ci sia l'oggetto minore. Magari inizi a comparare 'a' e 'b' se a > b allora li scambi. Poi compari 'a' e 'c' e idem, se a > c, li scambi ecc... e poi compari ancora 'a' e 'd'. Alla fine di questo primo "round" hai che in 'a' c'è già il valore minore tra tutti.
    A questo punto lasci stare 'a' e ti concentri sugli altri. Quindi compari 'b' e 'c' ecc....
    Fino a quando hai esaurito le varie possibilità.

    Alla fine della fiera, in a b c d hai gli elementi ordinati (a fa riferimento al minore, d al maggiore).

    Prova, se hai dubbi, chiedi pure.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Grazie andbin...i confronti tra numeri e stringhe per la verifica del minore e del maggiore mi hanno sempre portato via un po di tempo..proverò oggi pomeriggio e posterò sperando con esito positivo...

  6. #6
    Non mi funziona il programma... come hai detto tu devo comparare ogni stringa..forse sbaglio nel comparare..ad esempio qui comparo a con le altre 3 stringhe..

    if( (prima.compareTo(seconda) ) < 0)
    {
    if( (prima.compareTo(terza) ) < 0)

    if( (prima.compareTo(quarta) ) < 0)
    {
    min=prima;
    }
    }

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,281
    Originariamente inviato da OaCkLeY86
    Non mi funziona il programma... come hai detto tu devo comparare ogni stringa..forse sbaglio nel comparare..ad esempio qui comparo a con le altre 3 stringhe..
    No, non va bene.

    Ripartiamo da capo: hai 4 stringhe a b c d. Una soluzione molto semplice è sfruttare lo stesso concetto che sta alla base dell'algoritmo "bubble-sort". Con 4 variabili sono sufficienti solo 6 if.

    - Compara 'a' con 'b'. Se 'a' è maggiore di 'b', scambi i valori.
    - Compara 'a' con 'c'. Se 'a' è maggiore di 'c', scambi i valori.
    - Compara 'a' con 'd'. Se 'a' è maggiore di 'd', scambi i valori.

    Ora in 'a' hai il valore minore. Prosegui con le altre possibili combinazioni lasciando stare 'a'. Nota che i singoli test sono slegati dagli altri, quindi nessun if è innestato nell'altro o cose del genere.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.