检查字符串是一个标点符号(Check if string is a punctuation char

2019-07-05 15:16发布

比方说,我有一个包含一些字母和标点符号的String数组

String letter[] = {"a","b","c",".","a"};

在函[3]我们有“”

如何检查字符串是否是标点字符? 我们知道,有很多可能的标点字符(,。?!等)

到目前为止,我的进步:

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

Answer 1:

你要检查的不仅仅是其他更多的标点符号.

如果是这样,你可以做到这一点。

String punctuations = ".,:;";//add all the punctuation marks you want.
...
if(punctuations.contains(letter[a]))


Answer 2:

下面是正则表达式来做到这一点的一种方法:

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

\p{Punct}正则表达式是表示单个标点字符一个POSIX图案。



Answer 3:

根据您的需求,您可以使用任一

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

要么

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

所述第一图案中的下列32个字符相匹配: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

所述第二图案相匹配的高达632个Unicode字符,包括,例如: « »¿¡§' ' ,和

有趣的是, 不是所有的由所述第一图案相匹配的32个字符的被第二匹配 。 第二图案匹配以下9个字符: $+<=>^`|~ (其中,所述第一图案匹配)。

如果你想匹配从任一字符集的任何字符,你可以这样做:

Pattern.matches("[\\p{Punct}\\p{IsPunctuation}]", str)


Answer 4:

试试这个方法:Character.isLetter()。 如果字符是字母(az,大写或小写)返回true,如果字符是数字或符号返回false。

例如,布尔答案= Character.isLetter( '!');

答案将等于假。



Answer 5:

进口字符串...如果(string.punctuation.contains(函[A]))



Answer 6:

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



文章来源: Check if string is a punctuation character