String to Integer-> lösning?

Diskussion i 'Frågor, support och diskussion' startad av DreamHawk, 25 nov 2011.

  1. DreamHawk

    DreamHawk Android Medlem

    Blev medlem:
    28 maj 2010
    Inlägg:
    6 064
    Mottagna gillanden:
    419
    Operatör:
    Tele2
    Telefon:
    iPhone 7

    MINA ENHETER

    Operatör:
    Tele2
    Telefon:
    iPhone 7
    ROM:
    IOS11
    Telefon 2:
    Google Galaxy Nexus
    ROM:
    LineageOS
    I need your help! :)

    Har fått detta felet en del på min app:
    På denna kodrad
    Kod:
    int page = Integer.parseInt(response.toString());
    Efter lite googlande fick jag tipset att man kunde lägga in den i en form av try/catch.

    Kod:
    			try {
    				page = Integer.parseInt(response.toString());
    			} catch (NumberFormatException e1) {
    				// TODO Auto-generated catch block
    				Toast.makeText(Main.this, "Error fetching versionnumber", Toast.LENGTH_SHORT).show();
    			}
    Blev resultatet då...

    Går det finslipa denna på något sätt? Eller duger den?
    Det den ska göra är att hämta senaste versionnumber från webben, som ligger i en simpel .txt-fil, hämtar som en string då, och sen gör om den till int.
     
  2. Senap

    Senap Youth Droid Medlem

    Blev medlem:
    12 dec 2010
    Inlägg:
    113
    Mottagna gillanden:
    13

    MINA ENHETER

    Du kan annars kontrollera om din string innehåller siffror först, men det känns lite overkill tycker jag. Jag hade nog bara stoppat din try-catch kod i en toInt funktion och i catch-delen returnerat -1 eller null, eller något annat värde som är passande för dig.

    Kod:
    public int toInt(String value, int default) {
      int result;
      try {
        result = Integer.parseInt(value);
      } catch (NumberFormatException e1) {
        result = default;
      }
      return result;
    }
    
    // Om du vill strunta i att ange ett default värde varje gång
    // Ersätt -1 med valfritt värde.
    public int toInt(String value) {
      return toInt(value, -1);
    }