2012-12-18 19 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; 
 

 
}

相关问题