2012-12-18 20 views
7

だが、私はいくつかの文字と句読点の手紙の中でチェック文字列が

String letter[] = ["a","b","c",".","a"] 

[3]私たちは持っているが含まれているString配列を持っているとしましょう句読点文字がある場合、「」

ループを使用して確認したいfor if文を作成するにはどうすればよいですか? (。?!など) 我々は句読点があるかもしれないことを知っている

私の進捗状況これまで:Character.isLetter():

for(int a=0; a<letter.length;a++) 
{ 
if(letter[a].equals(".")) ===>> i'm confused in this line 
{ 
System.out.println ("its puctuation"); 
} 
else 
{ 
System.out.println ("just letter"); 
} 
+3

あなたは、この目的のために正規表現を使用することができます。それは本当に便利です。 – Smit

+0

@smit、あなたに私にヒントを教えてもらえますか? – sephtian

+0

これはあなたにいくつかのアイデアを提供します:[Javaの句読点正規表現](http://stackoverflow.com/questions/8200908/punctuation-regex-in-java) – Stanley

答えて

16

.以外の句読点を確認しますか?

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

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

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

String punctutations = ".,:;";//add all the ones you want. 
... 
if(punctutations.contains(letter[a])) 
+0

ありがとう!単純ですが動作します – sephtian

+2

このソリューションは、すべての句読点を手動で指定することを意味します。 「句読点」の定義は間違いなく不完全です。 –

+0

これでは不十分です。さまざまな句読記号を持つ言語がたくさんあります。これらはラテンアルファベットをカバーしていません。 代わりに\ p {P}または\ p {句読点}を使用してください – andreyro

2

は、この方法を試してみてください。文字が英字(a-z、大文字または小文字)の場合はtrueを返し、数値または記号の場合はfalseを返します。

ブール値の答え= Character.isLetter( '!');

答えは偽と等しくなります。

44

はここで、正規表現でそれを行うための一つの方法です。

-3

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; 
 

 
}

関連する問題