2012-12-18 62 views
7

比方說,我有一個包含一些字母和標點符號檢查字符串是一個標點字符

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

在函[3]我們有一個字符串數組「」

我想檢查使用循環for但我怎麼能使if語句? 我們知道,有可能是標點符號

我迄今取得的進展(等。?!):

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

您可以使用正則表達式用於此目的。它非常方便。 – Smit

+0

@smit,你能給我一個提示嗎? – sephtian

+0

這會給你一些想法:[標點符號正則表達式在Java](http://stackoverflow.com/questions/8200908/punctuation-regex-in-java) – Stanley

回答

16

想要檢查除.以外的更多標點符號嗎?

如果是這樣你可以做到這一點。

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

謝謝!簡單但可以工作 – sephtian

+2

此解決方案意味着您可以手動指定所有標點符號。 「標點符號」的定義肯定是不完整的。 –

+0

這還不夠。有很多不同的標點符號的語言。這些甚至不包括拉丁字母。 改用\ p {P}或\ p {標點符號} – andreyro

2

試試這個方法:Character.isLetter()。如果字符是字母(a-z,大寫或小寫),則返回true;如果字符是數字或符號,則返回false。

例如boolean answer = Character.isLetter('!');

答案將等於false。

44

這裏是與正則表達式來做到這一點的一種方法:

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

\p{Punct}正則表達式是表示單個標點字符一POSIX圖案。

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

 
}

相關問題