web-dev-qa-db-ja.com

文字列が句読文字かどうかを確認する

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

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");
    }
}
15
sephtian

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

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

String punctuations = ".,:;";//add all the punctuation marks you want.
...
if(punctuations.contains(letter[a]))
23
Karthik T

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

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

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

60
dasblinkenlight

ニーズに応じて、次のいずれかを使用できます

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

または

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

最初のパターンは、次の32文字に一致します:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

2番目のパターンは、«»¿¡§など、なんと632のユニコード文字と一致します。

興味深いことに、最初のパターンと一致する32文字のすべてが2番目のパターンと一致するわけではありませんです。 2番目のパターンは、次の9文字に一致しませんnot$+<=>^`|、および~(最初のパターンdoes一致)。

または文字セットのいずれかの文字と一致させる場合は、次のようにすることができます:

Pattern.matches("[\\p{Punct}\\p{IsPunctuation}]", str)
16
Hans Brende

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

例えばブール回答= Character.isLetter( '!');

答えはfalseになります。

1
Jj Tuibeo

インポート文字列... if(string.punctuation.contains(letter [a]))

0
user3258797