如何检查两个字符之间是否有空格?

时间:2015-03-07 22:40:11

标签: java string swing char jtextfield

我是Java编程的新手,现在我正在开发一个简单的应用程序。 现在我专注于找到解决这个问题的方法:检查JTextField中包含的String是否在每个字符之间包含空格,例如:“1 + 2 - 3 + 7”(每个字符之间有空格),但是我无法找到解决方案。 你可以帮帮我吗? 在此先感谢;)

4 个答案:

答案 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++;
    }
}