Errore java.lang.NumberFormatException: For input string: "11:4:20"

skill27

Member
salve, mi dà questo errore nell'activity list...e non riesco a risolverlo. come posso risolvere?
precisamente nelle ultime 3 righe di minute,second ed errorsInt = stringArray


Sub ListView1_ItemClick(Position As Int, Value As Object)


Dim minuteString As String
Dim secondString As String
Dim errorString As String

Dim List1 As List

List1.Initialize


If File.Exists(File.DirRootExternal, "MathTest/ListResults.txt") Then


List1 = File.ReadList(File.DirRootExternal, "MathTest/ListResults.txt")

End If



Dim stringMom As String = List1.Get(Position)


Dim stringArray() As String = Regex.Split("\|", stringMom)


Dim dateDD As Int= stringArray(0)
Dim dateMM As Int = stringArray(1)
Dim dateYY As Int = stringArray(2)
minutesInt = stringArray(3)
secondsInt = stringArray(4)
errorsInt = stringArray(5)
 

LucaMs

Expert
Licensed User
1. No code tags.
Significa (means) che se pubblichi del codice sorgente devi racchiuderlo tra i tag di apertura e chiusura codice, nel post.
Puoi farlo facendo click sull'icona "Code":
1589263141088.png


Il tuo sorgente:
B4X:
Sub ListView1_ItemClick(Position As Int, Value As Object)


    Dim minuteString As String
    Dim secondString As String
    Dim errorString As String

    Dim List1 As List
   
    List1.Initialize
   
   
    If File.Exists(File.DirRootExternal, "MathTest/ListResults.txt") Then
       
    
         List1 = File.ReadList(File.DirRootExternal, "MathTest/ListResults.txt")
   
    End If
   
   

    Dim stringMom As String = List1.Get(Position)
   
  
    Dim stringArray() As String = Regex.Split("\|", stringMom)
   
   
    Dim dateDD As Int= stringArray(0)
    Dim dateMM As Int = stringArray(1)
    Dim dateYY As Int = stringArray(2)
    minutesInt = stringArray(3)
    secondsInt = stringArray(4)
    errorsInt = stringArray(5)
Per la risposta... ci penserò tra poco :) , perché ancora non ho letto la domanda (oppure lo faranno altri ;))
 

LucaMs

Expert
Licensed User
Fai un Log(stringMom) e facci vedere il risultato.

Tu suddividi quella stringa usando:
B4X:
Dim stringArray() As String = Regex.Split("\|", stringMom)
il che funzionerebbe se ogni parte della data-ora fosse separata dall'altra dal carattere Pipe |, ma evidentemente non è così.

[piccolo suggerimento: vedo che chiami alcune variabili col suffisso String, mentre in altre lo usi come prefisso; usare sempre il prefisso "str" sarebbe più utile]
 

udg

Expert
Licensed User
Dal titolo si vede già che ore/minuti/secondi sono suddivisi dal carattere due punti (invece che dal pipe come sembrerebbe dover essere leggendo il codice)
Probabilmente l'errore rinviene dalla riga in cui attribuisci ad una variabile globale di tipo int (minutesInt) una stringa stringarray(x) che non rappresenta nè può essere convertita in numero valido. Presumibilmente doveva trattarsi solo della sotto-stringa relativa ai minuti (e così pure per ore e secondi) ma viene fornito l'intero orario.
 

LucaMs

Expert
Licensed User
Dal titolo si vede già che ore/minuti/secondi sono suddivisi dal carattere due punti (invece che dal pipe come sembrerebbe dover essere leggendo il codice)
Probabilmente l'errore rinviene dalla riga in cui attribuisci ad una variabile globale di tipo int (minutesInt) una stringa stringarray(x) che non rappresenta nè può essere convertita in numero valido. Presumibilmente doveva trattarsi solo della sotto-stringa relativa ai minuti (e così pure per ore e secondi) ma viene fornito l'intero orario.
Si ma bisogna vedere come siano separate la data dall'ora e le parti della data tra loro.
Non è molto faticoso fare un Log e pubblicarlo ;)
 
  • Like
Reactions: udg

skill27

Member
Fai un Log(stringMom) e facci vedere il risultato.



Tu suddividi quella stringa usando:

B4X:
Dim stringArray() As String = Regex.Split("\|", stringMom)
il che funzionerebbe se ogni parte della data-ora fosse separata dall'altra dal carattere Pipe |, ma evidentemente non è così.



[piccolo suggerimento: vedo che chiami alcune variabili col suffisso String, mentre in altre lo usi come prefisso; usare sempre il prefisso "str" sarebbe più utile]
8|5|2020|11:4:20|0:20|0


ps. risolto grazie a te, era l'ora che non è piu presente e che era stata salvata nel precedente test.
 
Last edited:
Top