Originariamente inviato da power83
Salve a tutti!!
domanda: ho un thread che è in attesa di un char da tastiera, come faccio a confrontare il char che ricevo con per esempio "s"?
grazie millein questo caso si usa ' perchè è un _carattere_ da confrontare, inoltre visto che i tipi primitivi come i char sono per valore si può usare l'operatore == per compararlo.codice:char carattere = (char) System.in.read(); if(carattere == 's') System.out.println("è uguale"); else System.out.println("è diverso");
Nel tuo post usi " queste virgolette che si usano per le stringhe.
In Java le stringhe che fungono da tipo di dato incorporato sono oggetti non array di caratteri come in altri linguaggi; essendo però le stringhe in java oggetti e quindi sempre per riferimento l'operatore == serve già a verificare se due oggetti puntano alla stessa istanza, quindi per confrontare devi usare equals() di String o compareTo o altre sue varianti.
esempio:
se invece faicodice:String ciao = "ciao"; if(ciao.equals("ciao"); //ecc...
guardi se ciao è la stessa istanza rappresentata a bcodice:... String ciao = "ciao"; String b = ciao; if(ciao == b) ...//ecc...
Vedi se era questo l'errore.
![]()

Rispondi quotando