Autore Topic: Confronto caratteri non riconosciuto  (Letto 839 volte)

Offline Androi-dé!

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Windows 7
Confronto caratteri non riconosciuto
« il: 21 Febbraio 2012, 08:55:53 CET »
0
Ho un problema da cui non riesco a venirne a capo, praticamente in breve ho una stringa che prelevo da una textview e che vorrei dividere in un array di caratteri per poi fare un confronto carattere per carattere con un "if". Il problema è che non mi viene dato errore, l'applicazione funziona ma a parità di carattere non mi viene riconosciuto.
Metto l'esempio grezzo poi riporto il codice:

Ho una stringa del tipo
STRINGA = "01"
MEtto i caratteri della stringa in un array quindi avrei una situazione tipo
ARRAY[0] = "0"
ARRAY[1] = "1"
Eseguo il confronto
IF ARRAY[0] == "0"... ELSE...

Ecco, quando confronto l'array che contiene il carattere "0" (ed è presente perchè lo visualizzo con un toast) con il carattere "0" non mi esegue il codice relativo ma salta all'ELSE.

Il codice vero e proprio che ho fatto è il seguente:

Codice (Java): [Seleziona]
//Poniamo che nella TextView io abbia la stringa "01"
        String miotesto= (String) logAreaText.getText().toString(); // Metto la stringa "01" in una variabile
        miotesto= miotesto.replaceAll(" ", ""); // Eseguo un replace alla stringa per togliere eventuali spazi
            char [] amiotesto = miotesto.toCharArray();
            for (int i = 0; i < amiotesto.length; i++) {
            String pippo = amiotesto[i] + ""; // Lo faccio per convertire in String altrimenti mi genera errore tra String e Char
            Toast.makeText(getApplicationContext(), "a" + pippo + "a", Toast.LENGTH_SHORT).show(); // Qui mi visualizza il carattere nell'array (ho messo le "a" solo per essere sicuro che non ci fossero spazi
            if (pippo == "0") {
            Toast.makeText(getApplicationContext(), "Operazione 1", Toast.LENGTH_SHORT).show();
            }
            else {
            Toast.makeText(getApplicationContext(), "Operazione 2", Toast.LENGTH_SHORT).show();
            }
            }

Il primo Toast mi mostra i caratteri in sequenza "0" e poi "1", mentre quelli dell'IF mi danno sempre come risultato "Operazione 2", mentre dovrebbe essere prima l'uno e poi l'altro.
Non generandomi errore non capisco dove possa essere l'inghippo.  ???

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Confronto caratteri non riconosciuto
« Risposta #1 il: 21 Febbraio 2012, 09:00:57 CET »
+1
La comparazione di una stringa in Java puoi farla con equals (prende un object) o con equalsignorecase.

Potresti provare così.

Codice (Java): [Seleziona]
String tester = "0";
if( pippo.equals(tester) )
....

 :-)

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Re:Confronto caratteri non riconosciuto
« Risposta #2 il: 21 Febbraio 2012, 09:47:04 CET »
+1
altrimenti puoi usare il compare
if ( Stringa1.compareTo(Stringa2) == 0 )
then
le stringhe sono uguali
else
le stringhe sono diverse

Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Confronto caratteri non riconosciuto
« Risposta #3 il: 21 Febbraio 2012, 10:04:47 CET »
0
bisogna studiare java prima di lavorare con android... le stringhe sono oggetti, non dati primitivi!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Androi-dé!

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Windows 7
Re:Confronto caratteri non riconosciuto
« Risposta #4 il: 21 Febbraio 2012, 19:23:56 CET »
0
Un grazie (e un thanks) ad entrambi, sono funzionanti tutte e due le soluzioni anche se a occhio preferisco la prima anche per il fatto che avevo già tentato ad usare l'"equals" ma non mi funzionava perchè non avevo convertito in String la lettera di comparazione.