Autore Topic: Cambiare caratteri stringa  (Letto 3641 volte)

Offline Nick21

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    Windows 7
Cambiare caratteri stringa
« il: 01 Febbraio 2013, 00:31:16 CET »
0
Ciao ragazzi, sono un giovane neo sviluppatore e sono lieto di essere entrato a fare parte di questo gruppo :-)
Vi espongo il mio problema: tramite l'inserimento di una parola nell'edittext, voglio cambiare ogni lettera con una serie di lettere (es: se nell'applicazione inserisco la parola "ak" voglio che "a" venga sostituita con "bk" e che "k" venga sostituita con "mn", in modo da far comparire nella textview la parola "bkmn"), il tutto grazie al click di un bottone.
Il problema mi si presenta qua:
Codice (Java): [Seleziona]
                                String s = etinseriscinome.getText().toString();
                                s = s.replaceAll("a", "bk");
                                s = s.replaceAll("k", "mn");

facendo una cosa del genere, il risultato non sarà "bkmn", ma logicamente "bmnmn".. in che modo posso risolvere? Scomponendo prima la stringa in caratteri?

Offline Nicola_D

  • 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:Cambiare caratteri stringa
« Risposta #1 il: 01 Febbraio 2013, 00:48:28 CET »
0
inverti i due replace :D
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 Nick21

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    Windows 7
Re:Cambiare caratteri stringa
« Risposta #2 il: 01 Febbraio 2013, 12:28:28 CET »
0
No, perchè finchè inserisco solo questi due replace va bene, ma se ne inserisco tanti ci saranno per forza altre coincidenze e quindi mi ritrovo lo stesso problema..

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Cambiare caratteri stringa
« Risposta #3 il: 01 Febbraio 2013, 12:51:09 CET »
0
No, perchè finchè inserisco solo questi due replace va bene, ma se ne inserisco tanti ci saranno per forza altre coincidenze e quindi mi ritrovo lo stesso problema..

Un modo generale per metterti al sicuro da queste eventualità è di scandire la stringa un carattere alla volta e comporre la stringa risultato in funzione dei caratteri che leggi via via.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Nick21

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    Windows 7
Re:Cambiare caratteri stringa
« Risposta #4 il: 01 Febbraio 2013, 12:56:27 CET »
0
Un modo generale per metterti al sicuro da queste eventualità è di scandire la stringa un carattere alla volta e comporre la stringa risultato in funzione dei caratteri che leggi via via.
Potresti farmi un esempio di come realizzarla?

Offline Nick21

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    Windows 7
Re:Cambiare caratteri stringa
« Risposta #5 il: 03 Febbraio 2013, 12:46:51 CET »
0
Nessuno che possa aiutarmi o almeno darmi un indizio su come fare?  :-(

Offline Il.Socio

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +3
    • marcobellino
    • Mostra profilo
    • Guardian-Mobile
Re:Cambiare caratteri stringa
« Risposta #6 il: 03 Febbraio 2013, 16:48:31 CET »
0
Ti è stato dato detto qui come risolvere.
Hai provato a scrivere il codice per scandire la stringa un carattere alla volta? o non sai da che parte iniziare per farlo?

Offline Nick21

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    Windows 7
Re:Cambiare caratteri stringa
« Risposta #7 il: 04 Febbraio 2013, 20:55:07 CET »
0
Ti è stato dato detto qui come risolvere.
Hai provato a scrivere il codice per scandire la stringa un carattere alla volta? o non sai da che parte iniziare per farlo?

Se io scrivo
Codice (Java): [Seleziona]
char c[] = stringa.toCharArray(); la stringa che ho inserito dovrebbe scomporsi in caratteri (correggetemi se sbaglio)..ma poi come devo continuare?

Offline Gigsultamigi

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    windows 7
Re:Cambiare caratteri stringa
« Risposta #8 il: 04 Febbraio 2013, 21:34:38 CET »
+1
Prova un pò cosi:

Codice (Java): [Seleziona]
        public String scorri(String a){

                char[] arr = a.toCharArray();
                String finale = "";
               
                for(int i=0;i<a.length();i++){
               
                        switch(arr[i]){
                                case 'a':
                                        finale = finale.concat("bk");
                                break;
                                case 'k':
                                        finale = finale.concat("mn");
                                break;
                        }      
                }
               
                return finale;
               
        }

Offline Il.Socio

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +3
    • marcobellino
    • Mostra profilo
    • Guardian-Mobile
Re:Cambiare caratteri stringa
« Risposta #9 il: 05 Febbraio 2013, 02:12:31 CET »
0
Prova un pò cosi:
Dai un pesce ad un uomo e lo sfamerai per un giorno; insegna ad un uomo a pescare e lo sfamerai per tutta la vita.
;)

P.S.
tra l'altro, ti sei perso per strada il default:

Offline Gigsultamigi

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    windows 7
Re:Cambiare caratteri stringa
« Risposta #10 il: 05 Febbraio 2013, 12:55:31 CET »
0
Beh.. io la penso diversamente... se hai la forma mentis per programmare è inutile che perdi tempo dietro ai problemi risolti da altri..
PS. che default??

Offline Il.Socio

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +3
    • marcobellino
    • Mostra profilo
    • Guardian-Mobile
Re:Cambiare caratteri stringa
« Risposta #11 il: 05 Febbraio 2013, 14:18:10 CET »
0
Considerando che ha problemi a scrivere un for, mi sembra evidente che, quello che manchi, sia proprio la forma mentis per programmare... non si tratta di reinventare la ruota, ma di acquisire e consolidare le nozioni fondamentali.

nello switch, non hai inserito il default:
perdendo cosi' quei caratteri che non sono da sostituire.
se la stringa fornita in input fosse "azk", il tuo output sarebbe "bkmn", a differenza di quello atteso "bkzmn"
« Ultima modifica: 05 Febbraio 2013, 15:46:15 CET da Il.Socio »

Offline Nick21

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    Windows 7
Re:Cambiare caratteri stringa
« Risposta #12 il: 06 Febbraio 2013, 01:00:28 CET »
0
Così funziona, l'ho un po' modificata e adattata alla mia situazione e va. Il funzionamento ora l'ho capito.
Il problema del default però è vero, c'è.
Codice (Java): [Seleziona]
                bconverti.setOnClickListener(new View.OnClickListener() {
                       
                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                String stringa = etinseriscinome.getText().toString();
                                char[] arr = stringa.toCharArray();
                String finale = "";
               
                for(int i=0;i<stringa.length();i++){
               
                        switch(arr[i]){
                                case 'a':
                                        finale = finale.concat("bk");
                                break;
                                case 'k':
                                        finale = finale.concat("mn");
                                break;
                        }      
                }
                tvnomeninja.setText(finale);

                        }
                });
Potreste spiegarmi come inserirlo?

Offline Melanogaster

  • Utente normale
  • ***
  • Post: 260
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    SII
  • Sistema operativo:
    Kubuntu
R: Cambiare caratteri stringa
« Risposta #13 il: 06 Febbraio 2013, 08:11:22 CET »
0
Dentro lo switch inserisci il default... una breve ricerca su Google ti avrebbe permesso di risolvere il problema stanotte all'una invece di aspettare ora alle otto ;)

Offline Gigsultamigi

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    windows 7
Re:Cambiare caratteri stringa
« Risposta #14 il: 06 Febbraio 2013, 14:15:56 CET »
0
Ah ok.. il default dello switch!!!  :D :D