2016-04-06 18 views

Antwort

2

Ich hoffe, das funktioniert:

try { 
    int i=Integer.parseInt(yourString) 
    System.out.println(i); 
    }catch(Exception e) 
    {//String has something more than number 
    } 
+0

Und dann int zu string, wenn Sie brauchen. –

+0

Thnks Gott, es funktioniert –

0
while(str.length() >= 1 && str.charAt(0) == '0') 
    str = str.substring(1); 
+2

Leider erinnern Sie sich * falsch *. Es entfernt nur Leerzeichen am Anfang und am Ende eines 'Strings'. –

+0

Okay, vielen Dank dafür. Eine einfache While-Schleife sollte dann den Trick tun. – Danny0317

3

Alternative:

Verwendung von Apache Commons StringUtils Klasse:

StringUtils.stripStart(String str, String stripChars); 

Für Ihr Beispiel:

StringUtils.stripStart("0000819780", "0"); //should return "819780" 
2

Wenn die Eingabe immer eine Zahl ist und Sie nur die ersten Nullen entfernen möchten, parsen Sie sie einfach in eine ganze Zahl. Wenn Sie es im String-Format haben wollen, parsen Sie es zurück.

String a = "0000819780"; 
System.out.println(Long.parseLong(a)); 

Überprüfen Sie https://ideone.com/7NMxbE auf einen laufenden Code.

Wenn es andere Werte als Zahlen haben können, würden Sie fangen müssen NumberFormatException

+0

Danke, es funktioniert –

+0

Vielleicht verwenden 'Long'. Nicht alle Integer mit zehn Ziffern passen zu "Integer". – Thilo

+0

@Thilo, danke für das Hinzeigen. Ich habe die Antwort aktualisiert. –

4

Es gibt viele Möglichkeiten, wie Sie entfernen können Nullen von Ihrem String führt; ein Ansatz, iteriert die String von links nach rechts an den nächsten bis zum letzten Zeichen zu stoppen (so dass Sie nicht die letzte Ziffer löschen) stoppen, wenn Sie eine Nicht-Null stoßen und ruft String.substring(int) wie

String str = "0000819780"; 
for (int i = 0, length = str.length() - 1; i < length; i++) { 
    if (str.charAt(i) != '0') { 
     str = str.substring(i); 
     break; 
    } 
} 
System.out.println(str); 

Alternativ parsen der String wie

int v = Integer.parseInt(str); 
System.out.println(v); 
3

Eine elegante reine Java Weise ist nur "0000819780".replaceFirst("^0+(?!$)", "")

+1

Das würde eine leere Zeichenfolge für die Eingabe "0000" zurückgeben. – Thilo

+0

Sie haben Recht. Ich habe es jetzt geändert. – falcon

0

Doppel abc = Double.parseDouble ("00.346.632");

Zeichenfolge xyz = String.format ("%. 0f", abc);

Verwandte Themen