PDA

Visualizza la versione completa : [JAVA] Riconoscimento parole inserite


MOBILUK
21-01-2003, 15:49
devo fare in moda da creare diverse risposte del programma a seconda di ciò che inserisce l'utente tramite tasiere. Però non si tratta di caratteri o numeri che inserisce l'utente, ma di parole, quindi non posso certo inserire variabili com int o char. Ho pensato a string, ma come potrei inserirla?

Grazie

Luc@s
21-01-2003, 16:11
vorresti farlo con un case che in base al contenuto di na string di manda da qualche parte?????'
Usare un solo carattere no???????

swhitc(VAR)
{
CASE 'E':
CASE 'e':
esci();
BREACK;
}


Uno pseido codice cosi nn ti vA?

MOBILUK
21-01-2003, 16:33
Non posso usare la tua souzione dato che l'utente deve rispondere ad una domanda inserendo una parola, capisci?

Luc@s
21-01-2003, 16:35
ho capito!
Prova con


string prova= "entra"
if (tuaString.Uguals(prova)){

entra();

}else{

error()

}

MOBILUK
21-01-2003, 17:01
ecco il codice del programma in questione:



import cs1.Keyboard;

public class AI
{
public static void main (String[]args)
{
string luogo = "risposta1";
string luogo = "rispost2";
string luogo = "rispost3";

System.out.print ("testo della domanda");
luogo = Keyboard.readString();

System.out.println ("..." + luogo);

if (luogo.Uguals(risposta1))
{
System.out.println ("prima risposta del programma");
}
if (luogo.Uguals(risposta2))
{
System.out.println ("seconda risposta del programma");
}
if (luogo.Uguals(risposta3))
{
System.out.println ("terza risposta del computer");
}

}
}


ho apportato la modifica da te indicata (tranne else che non serve perchè l'utente deve necessariamente scegliere una delle tre risposte), ma il risultato non è stato quello sperato, e infatti mi da parecchi errori in fase di complazione.

pippo75
21-01-2003, 17:03
questa classe potrebbe fare al caso tuo?
http://www1.fpl.fs.fed.us/Console.html

Luc@s
21-01-2003, 17:04
nn programmo in java da un secolo pero mi pare che esista na funz uquals!
Cmq un errore è qui
string luogo = "risposta1";
string luogo = "rispost2";
string luogo = "rispost3";


perche tutti e 3 con lo stesso nome?

MOBILUK
21-01-2003, 17:09
Originariamente inviato da Luc@s

Cmq un errore è qui
string luogo = "risposta1";
string luogo = "rispost2";
string luogo = "rispost3";


perche tutti e 3 con lo stesso nome?

perchè l'utente inserisce una sola volta la risposta, poi il programma pricede autonomamente, senza chiedere altre immissioni tramite tastiera da parte dell'utente.

lelefante
21-01-2003, 17:12
Ci sono tre errori grossolani:
Anzi tutto definisci per tre volte la variabile luogo, ed e' una cosa che non puoi fare. La variabile luogo va definita una sola volta

String luogo = Keyboard.readString();

Secondo: il metodo Uguals da dove viene fuori?!?
Controlla la documentazione!
Il metodo da utilizzare per comparare due stringhe e' equals() oppure equalsIgnoreCase()

Terzo(meno grave): ti conviene mettere un else dopo ogni if per evitare di fare delle valutazioni inutili.
Se luogo e' uguale al primo caso, infatti, e' inutile valutare anche i successivi (perche' risulterebbe comunque falso il confronto).

pippo75
21-01-2003, 17:13
cmq basta definirla una volta sola
poi sarebbe


String ris1 ="risposta1";
String ris2 ="risposta2";
String ris3 ="risposta3";
System.out.print ("testo della domanda");
luogo = Keyboard.readString();

System.out.println ("..." + luogo);

if (luogo.equals(risposta1)){
//...
}
else{
}

Loading