2016-07-02 58 views
2

我知道這是一個奇怪的問這樣的問題。但我沒有選擇。問題是

我碰到一個要求,我碰巧添加一個條件,如果有一個輸入作爲字符串,我應該能夠允許所有隻包含一個單詞的字符串。所以如果有很多話我應該拒絕。 如何添加這樣的檢查,當我沒有這種字符串的特異性。如何檢查只包含一個單詞的字符串。如果一個字符串有一個句子,它應該返回false

+1

什麼是單詞?他們會包含空白嗎? – nlloyd

+0

檢查字符串中的空格。 – vv88

+0

@nlloyd它可以是任何字符序列 –

回答

6

如果字是由某種空格分隔,你可以使用一個簡單的正則表達式是:

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

這將匹配所有單詞字符([a-zA-Z_0-9])。如果您對「單詞」的定義不同,則需要修改正則表達式。

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 

輸入字符串的長度檢查是必需的,這將似乎合理。

相關問題