webForumDet fria alternativet

Problem med Integer.parseInt

1 svar · 1 843 visningar · startad av nigge

niggeMedlem sedan feb. 2002199 inlägg
#1

Jag har en sträng som innehåller ett tal, men som jag inte lyckas göra Integer.parseInt på...

char[] charArray = str.toCharArray();
boolean flag = false;
String s1 = "", s2 = "";
for(int i = 0; i < charArray.length; i++) {
  if(charArray[i] == ' ') {
    flag = true;
  } else {
    if(!flag) {
      s1 += charArray[i];
    } else {
      s2 += charArray[i];
    }
  }

Sådär ser min metod ut som delar på en sträng beroende på vart mellanslag finns...
(jag kommer få in två tal med ett mellanrum mellan och vill alltså få ut de två talen var för sig)
ett exempel på vad jag fått för resultat när jag gjort system.out.println("s1= "+s1+" s2= "+s2); är
s1=264 s2=275
Jag har även testat att lägga in text direkt efter s1 och s2 för att spana efter eventuella mellanslag som ligger och skräpar... men hittar ingenting! och ändå får jag ett numberformatexception när jag försöker göra int b = Integer.parseInt(s2) s1 går det bra att göra Integer.parseInt på... men inte på S2... vad kan vara fel?!?
Jag har testat att göra s2.trim(); innan jag gör en integer.parseint men det hjälper inte.
HJÄLP:-p

/Niklas

msossnaMedlem sedan feb. 2002476 inlägg
#2

Felet bör ligga någon annan stans i koden, kopierade din kod rakt av, funkar utmärkt.

        String str = "264 275";
        char[] charArray = str.toCharArray();
        boolean flag = false;
        String s1 = "", s2 = "";
        for (int i = 0; i < charArray.length; i++) {
            if (charArray[i] == ' ') {
                flag = true;
            } else {
                if (!flag) {
                    s1 += charArray[i];
                } else {
                    s2 += charArray[i];
                }
            }
        }

        System.out.println("s1= '" + s1 + "' s2= '" + s2 + "'");

        int a = Integer.parseInt(s1);
        int b = Integer.parseInt(s2);

Du kan dock förenkla koden lite http://download.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String).

String str = "264 275";
        String[] s = str.split(" ");
        System.out.println("s1= '" + s[0] + "' s2= '" + s[1] + "'");

        int a = Integer.parseInt(s[0]);
        int b = Integer.parseInt(s[1]);
139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
137 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)