Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    82

    [JAVA] - Alternativa a Switch

    Ciao,

    Per un programma dovrei conforntare due valori con gli operatori <, >, <= ecc. ecc.

    Il prob è che questi operatori sono salvati sotto forma di String, quindi, per poterli utilizzare dovrei usare qualche artificio...

    Io pensavo di fare uno switch, ma mi pare poco "elegante" come soluzione...

    Voi cosa consigliate?

    Pensavo ad un casting, ma non ho idea in cosa potrei castarli...

    Altre idee??

    Grazie a tutti
    [TrGh]

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    le stringhe hanno la funzione compareTo che le confronta con altre stringhe e restituisce un valore negativo se la prima viene prima alfabeticamente, un valore positivo se la prima viene dopo, 0 se sono uguali.
    Puoi usare una catena di if else

    if()...
    else if()...
    else if()...
    else

    Ha praticamente le stesse prestazioni di uno switch.

  3. #3
    Perchè non sai in cosa fare il cast? Ma la stringa è di numeri, caratteri o tutti e due?? :master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    82
    Ciao,

    grazie a tutti per le risposte...

    Allora, io avrei una varibile string che pptrebbe contenere uno di questi simboli:

    >
    <
    >=
    <=

    Io dovrei usare il simbolo memorizzato nella variabile per effettuare delle operazioni su degli int, il problema è che o faccio un ciclo if else (e viene parecchio lungo, calcolando che in mezzo devo poi farcirlo d'altro) o vorrei sapere se è possibile cacciare i < > >= <= in una qualche variabile (ma di che classe???)...

    Grazie ancora
    [TrGh]

  5. #5
    Scusa per questa domanda ma sarà l'ora o sarò proprio io però mi sfugge forse un po' la cosa, cerco di capire bene per non risponderti con delle boiate...abbi un po' di pazienza.
    Se non ho capito male, tu hai ad esempio 2 int e poi hai una variabile string che contiene uno di questi simboli:

    < > <= >=

    e ti interessa controlla in sostanza vedere se i due int sono in relazione tramite il simbolo nella variabile string giusto?

    Sinceramente non capisco perchè lo switch non andrebbe bene! Da quanto ho capito fa esattamente al caso tuo visto che è fatto appositamente per evitare di fare 2000 if uno di seguito all'altro. :master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    quoto Matteo, se il problema è solo riconoscere il simbolo prendine la lunghezza(1 o 2) e il codice ASCII(< o >).

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    82
    Ciao,

    ho provato a mettere lo switch, ma non riconosce i caratteri >= e <=, come potrei fare in modo che il case possa prendere i considerazione questi caratteri? mettendoli fra doppi apici ("") non funziona...

    Che dite?

    Un equals?

    Grazie ancora
    [TrGh]

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    82
    Spettate, cerco di presentarvelo meglio, anche perchè c'è un altro problema... non riesco ad inserirvi le eccezioni...

    Allora:

    Ho 2 Integer che poi con .intValue tramuto in int, devo raffrontarli tramite l'operatore contenuto in "String Operazione" (che può essere < > <= >= == e !=) e devo inoltre lanciare 2 eccezioni (che non ho la + pallida idea di dove ficcare) , la prima VariabileException, in caso il primo integer non sia presente in una variabile della superclasse e la seconda OperandoException in caso la stringa Operazione non contenga uno di quegli operatori...
    [TrGh]

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.