2016-09-26 147 views
1

我如何可以改變文本字符串字段在java中只包含某些字母字符(F, - )如何改變Java字符串只包含某些字母字符

格式爲:2f5-4,2F6,8f9 只有號F編號和 數f數 - 數

+0

可以提供一個輸入字符串的一個例子,並且要產生的輸出串。你還可以澄清,你想修改字符串的內容,而不是'驗證'它。 – robjwilkins

+0

在一個文本框我希望它僅接受這種類型的值: –

+0

2F6 2F9 6f10 5f9-2 3f4-9 號F編號 和 號F編號 - 數字 –

回答

3

你可以使用正則表達式來檢查,如果您的文本字段中的String是有效的:

\d+f\d+(?:-\d+)? 

Java代碼樣品

Pattern pattern = Pattern.compile("\\d+f\\d+(?:-\\d+)?"); 
for (String s : new String[] { 
    "2f6", "2f9", "6f10", "5f9-2", "3f4-9" 
}) { 
    System.out.println("String: \""+s+"\" match: "+pattern.matcher(s).matches()); 
} 
+0

嗨..什麼冒號(:)在這裏表示? –

+1

@AmberBeriwal'(?:something)'是一個內容爲「something」的非捕獲組。匹配器不需要將這部分字符串作爲一個組提取,因此我「告訴它」不要收集這些數據。如果您遺漏了'':''部分,則可以在使用'matcher.group(1)'找到一個字符串後,使用'Matcher matcher = pattern.matcher(s);'創建的匹配器來訪問這個子字符串。 – fabian

+0

謝謝。我不知道這一點。但上面的正則表達式也正在清除'5f5-'。 –

-1

正則表達式表達=>

(([0-9]+)([f])([0-9]*)|(([-])([0-9]*)))\w+ 
+0

它不適用於註釋中給出的輸入。 – prabodhprakash

相關問題