我想檢查是否高度有效。要有效必須是1或1.4或1.0或1等它不能是別的像一個字符串,數字或十進制旁邊的任何字符。小數不能在字符串的開頭,它只能有1個小數。正在嘗試的正則表達式是:正則表達式查找int或雙
"/^[0-9]+([\\,\\.][0-9]+)?$/"
但它不工作,仍然接受字符串。任何幫助將是偉大的,謝謝!
public static boolean HeightValid(String height)
{
boolean isHeightValid = true;
if(!height.matches("/^[0-9]+([\\,\\.][0-9]+)?$/") || height.length() < 1 || height.length() > 9)
{
isHeightValid = false;
}
else
{
double doubleHeight = Double.parseDouble(height);
DecimalFormat df = new DecimalFormat("#.00");
String decHeight = df.format(doubleHeight);
heightField.setText(decHeight);
}
return isHeightValid;
}
如果您需要任何更多的信息,只是添加評論,謝謝
爲什麼你會使用一個正則表達式的呢? – Johnsyweb
你爲什麼要使用正則表達式?這不是真的。如果你想查看一個字符串是否是一個int,使用一個內置的int解析函數。如果您想查看它是否是雙精度型,請使用雙解析函數。放下巧克力覆蓋的香蕉,遠離歐洲貨幣體系。 [另見。](http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/put-down-the-chocolate-covered-banana.html)(編輯:我誤以爲是C#,durp。評論仍然存在雖然,只是不是功能的名稱。) – neminem
另外,可能的幫助:http://stackoverflow.com/questions/8391979/does-java-have-a-int-tryparse-that-doesnt-throw- an-exception-for-bad-data – neminem