2016-07-02 6 views
2

私はそれがこのような質問をするのは賢明だと知っています。しかし、私はオプションがありません。問題は

私は条件を追加することになりました。文字列としての入力がある場合、1つの単語しか含まないすべての文字列を許可する必要があります。だから多くの言葉があるなら私は拒否すべきです。 このような文字列に特化していない場合に、そのようなチェックを追加する方法。これは、すべての単語文字([a-zA-Z_0-9])と一致します1つの単語だけを含む文字列をチェックする方法。文字列に文がある場合、それは偽を返します。

Pattern wordPattern = Pattern.compile("\\w+"); 
Matcher wordMatcher = wordPattern.matcher(inputString); 
if (!wordMatcher.matches()) { 
    // discard user input 
} 

:単語は空白のいくつかの種類によって分離されている場合

+1

何が単語なのですか?彼らは空白を含んでいますか? – nlloyd

+0

文字列内の空白を確認してください。 – vv88

+0

@nlloydこれはどんな文字列でもかまいません –

答えて

6

、あなたは、このための単純な正規表現を使用することができます。あなたの "単語"の定義が異なる場合、正規表現を適合させる必要があります。あなたはそれを達成することができます

1

非常に多くの方法、最も簡単なの 一つは..です

String str = "abc def"; 
String [] array = str.trim().split(" "); 
if(array.lenght==1){ 
// allow if lenght = 1, or a word.... 
}else{ 
// don't allow if lenght !=1 , or not a word..., dosomething else, or skip 
} 
0

あなたは空白の列を表す正規表現で文字列を分割して、どのように多くの部品あなた見ることができます取得する。

public static boolean is_word(String s) { 
    return (s.length() > 0 && s.split("\\s+").length == 1); 
} 

System.out.println(is_word("word")); 
System.out.println(is_word("two words")); 
System.out.println(is_word("word\tabc\txyz")); 
System.out.println(is_word("")); 

出力:あなたは空の文字列が単語ではないことを言いたい場合は

 
true 
false 
false 
false 

入力文字列の長さのチェックが必要とされるだろう、ここでそれを行うための機能です妥当と思われる。

関連する問題