tutorials.de Buch-Aktion 02/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
688
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    Hallo,

    kann mir jemand sagen, wie man einen Punkt . parsen kann?

    Ich möchte eine Zahl daraufhin überprüfen, dass sie maximal 10 Zeichen lang ist,
    aber auch einen Punkt beinhalten darf sowie ein Vorzeichen.
    ZB: -505.95

    Mein Pattern sieht so aus, aber es funktioniert nicht:
    Pattern.matches("[[+-]?[0-9]&&[\\.]]{0,10}", String.valueOf(erg));

    Vielen Dank
    Duckemai
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    7.983
    Hi.

    Die [] Meta-Zeichen repräsentieren eine sogenannte Zeichenklasse - und egal was du dort hineinschreibst, die Zeichenklasse repräsentiert immer nur genau ein Zeichen. Deshalb muss man andere Metazeichen innerhalb einer Zeichenklasse auch nicht entwerten.

    Für deinen Code heißt das, dass dein Muster mit Zeichenketten von 0 bis 10 Zeichen bestehend aus [, ], +, -, ?, 0-9, & oder . übereinstimmt.

    Versuch's mal mit Gruppieren:
    Code :
    1
    
    [-+]?([0-9]*[.])?[0-9]+
    Ob der String insgesamt aber nun aus max. 10 Zeichen besteht, könntest mit einem zweiten reg. Ausdruck prüfen, aber nimm einfach die length() Methode.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    Klasse!

    So klappt es, so mache ich es

    Danke für die ausführliche Antwort.
    Duckemai
     

  4. #4
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    Eine Frage hätte ich allerdings noch.

    Ich möchte gerne in einem String erkennen, ob er mit einer Zahl endet. ZB:

    -5.5 = true (hier also die letzte 5)

    Habe es so versucht, aber es klappt einfach nicht:

    Pattern.matches("([0-9]+)$",ausgabe.getText().toString())

    Was mache ich falsch?

    Vielen Dank
    Duckemai
    Geändert von Duckemai (10.08.10 um 13:13 Uhr)
     

  5. #5
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    7.983
    Hi.

    Der Anker $ ist bei der matches Methode überflüssig. Wenn du matches verwendest muss der gesamte String mit dem reg. Ausdruck übereinstimmen (das Muster ist also immer implizit in ^ $ eingefasst).

    Code :
    1
    
    Pattern.matches(".*[0-9]",ausgabe.getText().toString())
    Gruß
    Geändert von deepthroat (10.08.10 um 17:58 Uhr)
    Duckemai bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  6. #6
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    Eine Wissenschaft für sich.

    Danke noch mal.
     

Ähnliche Themen

  1. C++ Obserer Pattern und oder MVC Pattern
    Von bEKAR im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 29.11.09, 00:37
  2. Einlesen von Fließkommazahlen mit sscanf
    Von WingMan81 im Forum C/C++
    Antworten: 11
    Letzter Beitrag: 28.09.09, 20:44
  3. Rechnen mit Fließkommazahlen
    Von Thomas Darimont im Forum Java
    Antworten: 3
    Letzter Beitrag: 06.03.06, 08:07
  4. zufallszahl zwischen 2 Fließkommazahlen
    Von Philipp_Frank im Forum PHP
    Antworten: 6
    Letzter Beitrag: 20.10.05, 23:07
  5. Fließkommazahlen
    Von c-hilgert im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 09.06.04, 10:02