Ответ 1
Вы хотите проверить больше знаков препинания, чем просто .
?
Если это так, вы можете сделать это.
String punctuations = ".,:;";//add all the punctuation marks you want.
...
if(punctuations.contains(letter[a]))
Скажем, у меня есть массив строк, содержащий несколько букв и знаков препинания
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 punctuation");
} else {
System.out.println ("just letter");
}
}
Вы хотите проверить больше знаков препинания, чем просто .
?
Если это так, вы можете сделать это.
String punctuations = ".,:;";//add all the punctuation marks you want.
...
if(punctuations.contains(letter[a]))
Вот один из способов сделать это с помощью регулярных выражений:
if (Pattern.matches("\\p{Punct}", str)) {
...
}
Регулярное выражение \p{Punct}
представляет собой шаблон POSIX, представляющий один символ пунктуации.
В зависимости от ваших потребностей вы можете использовать
Pattern.matches("\\p{Punct}", str)
или
Pattern.matches("\\p{IsPunctuation}", str)
Первый шаблон соответствует 32 символам: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~
Второй шаблон соответствует колоссальным 632 символам юникода, включая, например: «
, »
, ¿
, ¡
, §
, ¶
, ‘
, ’
, "
, "
и ‽
.
Интересно, что не все 32 символа, совпадающие с первым шаблоном, сопоставляются вторым. Второй шаблон не соответствует следующим 9 символам: $
, +
, <
, =
, >
, ^
, `
, |
и ~
(которые первый шаблон соответствует).
Если вы хотите совместить любой символ из набора символов, вы можете сделать:
Pattern.matches("[\\p{Punct}\\p{IsPunctuation}]", str)
Попробуйте этот метод: Character.isLetter(). Он возвращает true, если символ является буквой (a-z, верхний или нижний регистр), возвращает false, если символ является числовым или символом.
например. boolean answer = Character.isLetter('!');
ответ будет равен false.
import String... if (string.punctuation.contains(letter [a]))
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;
}