2016-12-10 2 views
0

Ich möchte eine Zeichenfolge und ihren Inhalt scannen. Ich möchte eine Fehlermeldung zurückgeben, wenn ein Zeichen in der Zeichenfolge vorhanden ist. Zum Beispiel: int a = meineFunktion ("123"); speichert "123" in a, aber wenn der Benutzer versucht, etwas wie int a = myFunction ("12s32") zu tun; Es sollte den Fehler zurückgeben, da ein Zeichen in der Zeichenfolge ist. Das ist, was ich so weit gekommen:Scannen Sie eine Zeichenfolge für bestimmte Inhalte

public class Parseint { 
    public static int parseInt(String str) { 
     if (str == null || str.isEmpty()) { 
      System.out.println("Der String enthaelt keine Zeichen"); 
      return -1; 
     } else { 
      int sum = 0; 
      int position = 1; 
      for (int i = str.length() - 1; i >= 0; i--) { 
       int number = str.charAt(i) - '0'; 
       sum += number * position; 
       position = position * 10; 
      } 
      return sum; 
     } 
    } 

    public static void main(String[] args) { 
     int a = parseInt(""); 
     System.out.println(a); 
    } 
} 
+0

So möchten Sie Buchstaben ausschließen - Sie können nicht ausschließen Ziffern. (Sie können ein Tag verwenden oder eine andere Programmiersprache erwähnen.) Sie wissen, wie man eine bedingte Anweisung verwendet: 'if () { Rückgabe ;' (kein 'else' erforderlich danach (früh raus): verringert die Schachtelungstiefe/Eindrückung). Sie wissen, wie man ein Char-Literal bezeichnet und damit arithmetisch vorgeht: 'str.charAt (i) - '0''. Sie können auch Vergleiche anstellen. – greybeard

+0

Vielen Dank für Ihre Antwort! Meine Art zu denken ist, eine For-Schleife zu erstellen, die nach "ungültigen" Eingaben sucht. In meinem Fall alles außer Zahlen. Also bin ich in dieser Situation stecken geblieben und weiß nicht, wie ich das umsetzen soll. Soll ich für jeden verbotenen Brief einen Vergleich machen? Oder soll ich meine Funktion nur ausführen, wenn das Argument nur Zahlen und sonst nichts enthält? – ethanqt

+0

Sie sollten im Code _document, was es erreichen soll_. Sie sollten davon ausgehen, dass die meiste Zeit für eine gültige Eingabe aufgewendet wird: versuchen Sie einfach, mit der nützlichen Verarbeitung fortzufahren, und geben Sie, wenn Sie es nicht können, einen aussagekräftigen Hinweis auf _why_. – greybeard

Antwort

Verwandte Themen