Disons que j'ai un tableau de chaînes qui contient des lettres et des signes de ponctuation
String letter[] = {"a","b","c",".","a"};
Dans la lettre [3] nous avons "."
Comment puis-je vérifier si une chaîne est un caractère de ponctuation? Nous savons qu'il existe de nombreux caractères de ponctuation possibles (,.?! Etc.)
Mes progrès jusqu'ici:
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");
}
}
Souhaitez-vous vérifier davantage de ponctuations autres que .
?
Si oui, vous pouvez le faire.
String punctuations = ".,:;";//add all the punctuation marks you want.
...
if(punctuations.contains(letter[a]))
Voici un moyen de le faire avec des expressions régulières:
if (Pattern.matches("\\p{Punct}", str)) {
...
}
L’expression régulière \p{Punct}
est un motif POSIX représentant un seul caractère de ponctuation .
Selon vos besoins, vous pouvez utiliser soit
Pattern.matches("\\p{Punct}", str)
ou
Pattern.matches("\\p{IsPunctuation}", str)
Le premier motif correspond aux 32 caractères suivants: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Le second modèle correspond à 632 caractères unicode énormes, comprenant par exemple: «
, »
, ¿
, ¡
, §
, ¶
, ‘
, ’
, “
, ”
et ‽
.
Fait intéressant, les 32 caractères correspondant au premier motif ne sont pas tous identiques au second . Le second motif correspond pas aux 9 caractères suivants: $
, +
, <
, =
, >
, ^
, `
, |
et ~
(le premier motif correspond correspond).
Si vous voulez faire correspondre n'importe quel caractère de soit jeu de caractères, vous pouvez faire:
Pattern.matches("[\\p{Punct}\\p{IsPunctuation}]", str)
Essayez cette méthode: Character.isLetter (). Il renvoie true si le caractère est une lettre (a-z, majuscule ou minuscule), renvoie false si le caractère est numérique ou un symbole.
par exemple. réponse booléenne = Character.isLetter ('!');
la réponse sera égale à false.
importer String ... if (string.punctuation.contains (letter [a]))