2012-12-18 37 views
7

Lassen Sie uns sagen, dass ich ein String-Array haben, dass einige Buchstaben und SatzÜberprüfen Sie, ob String ist ein Satzzeichen

String letter[] = ["a","b","c",".","a"] 

In Brief enthält [3] haben wir „“

Ich möchte mit Schleifen for überprüfen, aber wie kann ich die if-Anweisung machen? Wir wissen, dass es sein kann, Zeichensetzung

Meine bisherigen Fortschritte (usw..?!):

for(int a=0; a<letter.length;a++) 
{ 
if(letter[a].equals(".")) ===>> i'm confused in this line 
{ 
System.out.println ("its puctuation"); 
} 
else 
{ 
System.out.println ("just letter"); 
} 
+3

Sie können regex für diesen Zweck verwenden. Es kommt wirklich praktisch. – Smit

+0

@smit, können Sie mir einen Tipp geben? – sephtian

+0

Dies wird Ihnen eine Idee geben: [Interpunktionsregex in Java] (http://stackoverflow.com/questions/8200908/punctuation-regex-in-java) – Stanley

Antwort

16

Möchten Sie mehr Interpunktionen als nur . überprüfen?

Wenn ja, können Sie dies tun.

String punctutations = ".,:;";//add all the ones you want. 
... 
if(punctutations.contains(letter[a])) 
+0

danke! simple but works – sephtian

+2

Diese Lösung bedeutet, dass Sie alle Interpunktionszeichen manuell angeben. Die Definition von "Interpunktion" ist definitiv unvollständig. –

+0

Das ist nicht genug. Es gibt viele Sprachen mit unterschiedlichen Interpunktionszeichen. Diese decken nicht einmal das lateinische Alphabet ab. Verwenden Sie stattdessen \ p {P} oder \ p {Interpunktion} – andreyro

2

versuchen, diese Methode: Character.isLetter(). Sie gibt true zurück, wenn das Zeichen ein Buchstabe ist (a-z, Groß- oder Kleinbuchstaben), gibt false zurück, wenn das Zeichen numerisch oder ein Symbol ist.

z.B. boolesche Antwort = Character.isLetter ('!');

Antwort wird gleich falsch sein.

44

Hier ist eine Möglichkeit, es mit regulären Ausdrücken zu tun:

if (Pattern.matches("\\p{Punct}", str)) { 
    ... 
} 

Der \p{Punct} regulärer Ausdruck ist ein POSIX-Muster ein einzelnes Interpunktionszeichen darstellt.

-3

function has_punctuation(str) { 
 

 
    var p_found = false; 
 
    var punctuations = '`[email protected]#$%^&*()_+{}|:"<>?-=[]\;\'.\/,'; 
 
    $.each(punctuations.split(''), function(i, p) { 
 
    if (str.indexOf(p) != -1) p_found = true; 
 
    }); 
 

 
    return p_found; 
 

 
}

Verwandte Themen