Let's say I have a String array that contains some letters and punctuation
String letter[] = {"a","b","c",".","a"};
In letter[3] we have "."
How can I check if a string is a punctuation character? We know that there are many possible punctuation characters (,.?! etc.)
My progress so far:
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");
}
}
Here is one way to do it with regular expressions:
The
\p{Punct}
regular expression is a POSIX pattern representing a single punctuation character.Do you want to check more punctuations other than just
.
?If so you can do this.
Try this method: Character.isLetter(). It returns true if the character is a letter (a-z, uppercase or lowercase), returns false if character is numeric or symbol.
e.g. boolean answer = Character.isLetter('!');
answer will be equal to false.
Depending on your needs, you could use either
or
The first pattern matches the following 32 characters:
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
The second pattern matches a whopping 632 unicode characters, including, for example:
«
,»
,¿
,¡
,§
,¶
,‘
,’
,“
,”
, and‽
.Interestingly, not all of the 32 characters matched by the first pattern are matched by the second. The second pattern does not match the following 9 characters:
$
,+
,<
,=
,>
,^
,`
,|
, and~
(which the first pattern does match).If you want to match for any character from either character set, you could do: