String überprüfen

Von: , Frage gestellt am Fr, 12. Nov 2004

Hallo,

Ich muss einen String überprüfen, ob er bestimmte Zeichen enthält.
Z.B. soll ein String keine Buchstaben enthalten, ein anderer keine Ziffern.
Ich weiss nicht, wie lang der String ist.
Ich habe es mit match(..) probiert, aber bei Strings, die sowohl gewünschte als auch ungewünschte Zeichen enthalten, klappt es nicht.

Beispiel:

String a="12739";
String b="abdie";
String c="adbv632";
a.match("[a-zA-Z]+") //gibt false
b.match("[a-zA-Z]+") //gibt true
c.match("[a-zA-Z]+") //gibt false, sollte aber true sein
a.match("[0-9]+") //gibt true
b.match("[0-9]+") //gibt false
c.match("[0-9]+") //gibt false, sollte aber true sein


Wie bekomme ich bei String c raus, das es keine Zahl darstellt, sondern einen Zeichenmischmasch?

Jan

3 Antworten zu dieser Frage

  1. Antwort von nach 15 Minuten 0 hilfreich
    Re: String überprüfen

    Hallo,
    sers Ich muss einen String überprüfen, ob er bestimmte Zeichen
    enthält.
    Z.B. soll ein String keine Buchstaben enthalten, ein anderer
    keine Ziffern.
    das ist das problem!? Beispiel:

    String a="12739";
    String b="abdie";
    String c="adbv632";
    a.match("[a-zA-Z]+") //gibt false
    b.match("[a-zA-Z]+") //gibt true
    c.match("[a-zA-Z]+") //gibt false, sollte aber true sein
    a.match("[0-9]+") //gibt true
    b.match("[0-9]+") //gibt false
    c.match("[0-9]+") //gibt false, sollte aber true sein


    Wie bekomme ich bei String c raus, das es keine Zahl
    darstellt, sondern einen Zeichenmischmasch?
    ja wieso willst du das? für deine problemstellung ist das doch völlig korrekt!
    du kannst natürlich auch beides untersuchen:
    if (c.match("[a-zA-Z]") && c.match("[0-9]"))
    {} /* enthält ziffern UND buchstaben! 
    allerdings könnten auch sonderzeichen drin sein (z.b.: - _), was vermutlich auch nich im sinne des erfinder ist! 
    willkommen in meiner gehassten welt der regulären ausdrücke ;) */
    
    Jan
    mfg
    Geisterkarle

  2. Antwort von nach 6 Stunden 0 hilfreich
    Re: String überprüfen

    Moin Z.B. soll ein String keine Buchstaben enthalten, ein anderer
    keine Ziffern.
    Character.getType() auf alle Buchstaben einzeln loslassen. Ich weiss nicht, wie lang der String ist.
    String.length() ?

    cu

  3. Antwort von nach 12 Stunden 0 hilfreich
    Re: String überprüfen

    Hallo Jan! Ich muss einen String überprüfen, ob er bestimmte Zeichen
    enthält.
    Ich habe es mit match(..) probiert, aber bei Strings, die
    sowohl gewünschte als auch ungewünschte Zeichen enthalten,
    klappt es nicht.

    Beispiel:

    String a="12739";
    String b="abdie";
    String c="adbv632";
    c.match("[a-zA-Z]+") //gibt false, sollte aber true sein
    c.match("[0-9]+") //gibt false, sollte aber true sein


    Wie bekomme ich bei String c raus, das es keine Zahl
    darstellt, sondern einen Zeichenmischmasch?
    Da bin ich als Perl-Programmierer in Java auch zuerst drauf
    reingefallen. Das Problem ist hier, dass die matches-Methode
    immer den gesamten(!) String matchen will und false zurück
    gibt, wenn sie es nicht schafft.

    Jeder Regex wird also klammheimlich mit ^regex$ (sprich "suche
    von Stringanfang bis Stringende") ergänzt. Damit wird klar,
    warum Deine matches oben nicht funktionieren.

    Die Funktion, die Du eigentlich suchst, ist find(), die auch
    Teilstrings findet, die auf das Muster passen. Die gefundenen
    Teilstrings kannst Du Dir dann mit group() ausgeben
    (siehe Matcher-Klasse unter http://java.sun.com/j2se/1.4.2/docs/api/java/util/re... )

    Einfacher führt hier aber ein
    c.matches("[a-zA-Z0-9]+")

    zum Ziel (alles was aus Buchstaben und Ziffern besteht).

    Gruß,
    -Andreas.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!