我是Java编程的新手,现在我正在开发一个简单的应用程序。 现在我专注于找到解决这个问题的方法:检查JTextField中包含的String是否在每个字符之间包含空格,例如:“1 + 2 - 3 + 7”(每个字符之间有空格),但是我无法找到解决方案。 你可以帮帮我吗? 在此先感谢;)
答案 0 :(得分:1)
除了制作方法我建议使用Pattern:^(\ d +)* \ d $
此正则表达式允许轻松修改,进一步限制或允许某些组合 - 轻松允许数字而不是数字。您可能希望在实用程序类中使用已编译的最终模式:
public static final Pattern P = Pattern.compile("^(\\d \\+ )*\\d$");
测试用例:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
// [...]
public static final Pattern P = Pattern.compile("^(\\d [\\+\\-] )*\\d$");
public static void main(String[] args) {
final String[] testCases = {
"1+2", "2 + 3", "5 + 6 - 4", "1 + ", "6 6"
};
for(String s:testCases) {
final Matcher m = P.matcher(s);
if(m.matches()) {
System.out.println("String valid: " + s);
} else {
System.out.println("String invalid: " + s);
}
}
}
给定输出:
字符串无效:1 + 2
字符串有效:2 + 3
字符串有效:5 + 6 - 4
字符串无效:1 +
字符串无效:6 6
答案 1 :(得分:0)
您可以使用偶数索引创建一个方法:
public boolean followsFormat(String string) {
String testString = "";
for (int i = 1; i < string.length(); i += 2) {
testString += string.trim().substring(i, i + 1);
}
testString = testString.trim();
return testString.equals("");
}
答案 2 :(得分:0)
真正简单的解决方案就是编写一个获取每个偶数索引的for循环并检查它是否为char。
public boolean hasRightSpacing(String str) {
for (int i = 1; i < str.length(); i+= 2) {
if (str.charAt(i) != ' ') {
return false;
}
}
return true;
}
显然,如果所有数字都不是一个数字,你就必须多做一些工作。
答案 3 :(得分:0)
好吧,要从文本字段中获取字符串,您可以去
String str = textField.getText();
然后你可以看看它是否有空格。
boolean containSpace = false;
if(str.contains(" "))
{
containSpace = true;
}
如果你想计算我想你可以使用for循环和字符的空格数。
int counter = 0;
for(int i = 0; i <= str.length; i++)
{
if(str.charAt(i) == ' ')
{
counter++;
}
}