2012-12-18 27 views
7

Powiedzmy mam tablicę znaków, który zawiera kilka liter i znaków interpunkcyjnychSprawdź, czy ciąg znaków interpunkcyjnych jest

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

w piśmie [3] mamy „”

Chcę sprawdzić za pomocą pętli for, ale jak mogę utworzyć instrukcję if? Wiemy, że nie może być znaków interpunkcyjnych

moje postępy tej pory (itd.?):

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

Można użyć wyrażenia regularnego do tego celu. Jest bardzo przydatny. – Smit

+0

@smit, czy możesz dać mi wskazówkę? – sephtian

+0

To daje pewien pomysł: [Regime Regex w Javie] (http://stackoverflow.com/questions/8200908/punctuation-regex-in-java) – Stanley

Odpowiedz

16

Czy chcesz sprawdzić więcej znaków interpunkcyjnych niż tylko .?

Jeśli tak, możesz to zrobić.

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

dzięki! proste, ale działa – sephtian

+2

To rozwiązanie oznacza, że ​​ręcznie określasz wszystkie znaki interpunkcyjne. Definicja "interpunkcji" jest zdecydowanie niepełna. –

+0

To nie wystarczy. Istnieje wiele języków, które mają różne znaki interpunkcyjne. Nie obejmują one nawet alfabetu łacińskiego. Zamiast tego użyj \ p {P} lub \ p {interpunkcja} – andreyro

2

Spróbuj tej metody: Character.isLetter(). Zwraca wartość true, jeśli znak jest literą (a-z, wielką lub małą), zwraca wartość false, jeśli znak jest liczbą lub symbolem.

np. boolean answer = Character.isLetter ('!');

odpowiedź będzie równa false.

44

Oto jeden ze sposobów, aby to zrobić z wyrażeń regularnych:

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

\p{Punct} wyrażenie regularne jest wzorcem POSIX reprezentujący pojedynczy znak interpunkcyjny .

-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; 
 

 
}

Powiązane problemy