Autore Topic: errore nella trasformazione da string a int  (Letto 594 volte)

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
errore nella trasformazione da string a int
« il: 10 Ottobre 2011, 05:39:10 CEST »
0
ragazzi ho un problema che non riesco a capire..
ho inserito questo codice:
Codice (Java): [Seleziona]
btavanti.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
        String numero = intent.getStringExtra(getPackageName()+".stringa scelta 1");
        int sceltanum =(Integer.parseInt(numero)+1);
        String sceltanum1 ="bcar"+Integer.toString(sceltanum);
e fino a qua funziona perfettamente..
ma quando vado a trasformare la stringa sceltanum1 in int, mi crassha l'emulatore .
la stringa che aggiungo e' questa:
Codice (Java): [Seleziona]
        int sceltanum2 =Integer.parseInt(sceltanum1);
        text.setText=(sceltanum2);
sto cercando di fare una cosa un po incasinata da spiegare, ma ho bisogno di creare entrambi gli int, ma il secondo proprio non me lo accetta..
sapete dirmi dove sbaglio?
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

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:errore nella trasformazione da string a int
« Risposta #1 il: 10 Ottobre 2011, 08:03:04 CEST »
0
Posta il LogCat del crash.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:errore nella trasformazione da string a int
« Risposta #2 il: 10 Ottobre 2011, 08:43:24 CEST »
0
Codice (Java): [Seleziona]
 String sceltanum1 ="bcar"+Integer.toString(sceltanum);
Tu assegni a sceltanum il valore "bcar"+ numero a piacere

come puoi pretendere che il parseInt funzioni su stringhe così costituite?

bcar1
bcar2
etc??

Offline bart

  • Utente junior
  • **
  • Post: 133
  • Respect: 0
    • highlanderteam
    • BBartsv
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy tab
  • Play Store ID:
    barth
  • Sistema operativo:
    ubuntu 11.04,mac os leopard,windows7
Re:errore nella trasformazione da string a int
« Risposta #3 il: 10 Ottobre 2011, 09:01:41 CEST »
0
CIAO non ti conviene usare il metodo valueOf(Sting s) io di solitho uso questo

Offline Cromir

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    CromEth
  • Sistema operativo:
    Windows 7 / Windows 8
Re:errore nella trasformazione da string a int
« Risposta #4 il: 10 Ottobre 2011, 09:51:30 CEST »
0
Ciao, sia nel metodo valueOf(String s) sia parseInt(String s), la stringa in ingresso deve essere composta solo da numeri decimali e l'unico carattere permesso è il "-" davanti al numero per indicare che esso è negativo, l'errore che ottieni dovrebbe essere un NumberFormatException mi pare.

Ora due possibili soluzioni al tuo problema sono:

1- Se la stringa "bcar" rimane invariata come lunghezza:
Codice (Java): [Seleziona]
int sceltanum = 42;
String sceltanum1 = "bcar"+Integer.toString(sceltanum);
int sceltanum2 = Integer.parseInt(sceltanum1.substring(4));

Il metodo substring(int index) ritorna la sottostringa partendo dalla posizione passata come parametro.

2- Se la stringa "bcar" dovesse cambiare di lunghezza:
Qua devi introdurre un carattere (che preferisci) prima del numero e splittare la stringa:
Codice (Java): [Seleziona]
String sceltanum1 = "bcarSys:"+Integer.toString(sceltanum);
String split[] = sceltanum1.split(":");
int sceltanum2 = Integer.parseInt(split[1]);

Spero di essere stato chiaro. :)

Saluti

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:errore nella trasformazione da string a int
« Risposta #5 il: 10 Ottobre 2011, 19:06:12 CEST »
0


2- Se la stringa "bcar" dovesse cambiare di lunghezza:
Qua devi introdurre un carattere (che preferisci) prima del numero e splittare la stringa:
Codice (Java): [Seleziona]
String sceltanum1 = "bcarSys:"+Integer.toString(sceltanum);
String split[] = sceltanum1.split(":");
int sceltanum2 = Integer.parseInt(split[1]);

Spero di essere stato chiaro. :)

Saluti
sei stato chiarissimo, il poblema però e' che in questo modo l'int sceltanum2 contiene solo la parte dopo i :...
in pratica se sceltanum1 diventa bcar123 , sceltanum prende solo 123 .
altra cosa strana e' che con le stringhe che hai postato, sceltanum1 diventa bcarSys:123 ..non ho capito il motivo di questo Sys :(

in ogni caso per il momento ho risolto cosi:
Codice (Java): [Seleziona]
final String strText = intentricevi.getStringExtra(getPackageName()+".stringa scelta 1");
String textI = ("bcar")+ (strText);
int textId =  getResources().getIdentifier(textI, "string",getPackageName());
textbarzellette.setText(getString(textId));
« Ultima modifica: 11 Ottobre 2011, 06:24:22 CEST da frecciak »
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!