20

いくつかの文字と句読点を含む文字列配列があるとしましょう

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

letter[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");
    }
}
4

7 に答える 7

65

正規表現でそれを行う 1 つの方法を次に示します。

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

正規表現は、単一の句読点\p{Punct}を表す POSIX パターンです。

于 2012-12-18T02:41:38.300 に答える
22

以外の句読点をチェックします.か?

もしそうなら、あなたはこれを行うことができます。

String punctuations = ".,:;";//add all the punctuation marks you want.
...
if(punctuations.contains(letter[a]))
于 2012-12-18T02:40:04.813 に答える
2

このメソッドを試してください: Character.isLetter()。文字が文字 (az、大文字または小文字) の場合は true を返し、文字が数値または記号の場合は false を返します。

例: boolean answer = Character.isLetter('!');

答えは false になります。

于 2012-12-18T02:39:51.367 に答える
-3

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;

}

于 2015-06-17T20:42:49.133 に答える