2016-09-26 148 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

相关问题