sep*_*ian 12 java string-comparison punctuation
假设我有一个包含一些字母和标点符号的String数组
String letter[] = {"a","b","c",".","a"};
Run Code Online (Sandbox Code Playgroud)
在信[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");
}
}
Run Code Online (Sandbox Code Playgroud)
das*_*ght 56
以下是使用正则表达式执行此操作的一种方法:
if (Pattern.matches("\\p{Punct}", str)) {
...
}
Run Code Online (Sandbox Code Playgroud)
该\p{Punct}正则表达式是表示单个一POSIX图案标点字符.
Kar*_*k T 22
你想检查除了以外的更多标点符号.吗?
如果是这样,你可以这样做.
String punctuations = ".,:;";//add all the punctuation marks you want.
...
if(punctuations.contains(letter[a]))
Run Code Online (Sandbox Code Playgroud)
Han*_*nde 15
根据您的需要,您可以使用其中之一
Pattern.matches("\\p{Punct}", str)
Run Code Online (Sandbox Code Playgroud)
要么
Pattern.matches("\\p{IsPunctuation}", str)
Run Code Online (Sandbox Code Playgroud)
第一个模式匹配以下32个字符: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
所述第二图案相匹配的高达632个Unicode字符,包括,例如:«,», ¿,¡,§,¶,‘,’,“,和”.
有趣的是,并非所有与第一个模式匹配的32个字符都与第二个模式匹配.第二图案并不能:以下9个字符相匹配?,$,+,<,=,>,^,`,和|(其中,所述第一图案不匹配).
如果要匹配任一字符集中的任何字符,您可以执行以下操作:
Pattern.matches("[\\p{Punct}\\p{IsPunctuation}]", str)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44278 次 |
| 最近记录: |