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)
 
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: Copy
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 ;))
 
Fai un Log(stringMom) e facci vedere il risultato.

Tu suddividi quella stringa usando:
B4X: Copy
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]
 
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.
 
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
Fai un Log(stringMom) e facci vedere il risultato.



Tu suddividi quella stringa usando:

B4X: Copy
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:
Back
Top