如何使用Java方法返回的布尔值?

时间:2011-09-30 21:12:57

标签: java boolean return

我有一个方法可以将一堆字符发送到另一个方法,如果存在某些字符,该方法将返回true或false。一旦此方法评估了所有字符并为每个字符返回true或false,我如何在另一个方法中使用这些true或false值? 我想我有一次发送一个字符的方法。 Boolean方法不是布尔数组。

    public void Parse(String phrase)
{
    // First find out how many words and store in numWords
    // Use "isDelim()" to determine delimiters versus words
    //
    // Create wordArr big enough to hold numWords Strings
    // Fill up wordArr with words found in "phrase" parameter


    int len = phrase.length();
    char[] SeperateString = new char[len];
    for (int i = 0; i < len; i++) {
        SeperateString[i] = phrase.charAt(i);
        isDelim(SeperateString[i]);
        System.out.println(SeperateString[i]);

  boolean isDelim(char c)
{


    {
        if (c == delims[0])
            return true;
        else if (c == delims[1])
            return true;

        else if (c == delims[2])
            return true;
        else
            return false;

    }

    //Return true if c is one of the characters in the delims array, otherwise return false

}

2 个答案:

答案 0 :(得分:2)

所以你的方法是这样的

boolean myMethod(String s) {
    // returns true or false somehow... doesn't matter how
}

你以后可以这样做

boolean b = myMethod("some string");

someOtherMethod(b);

甚至

someOtherMethod(myMethod("some string"));

现在,如果你的方法返回了很多布尔值,比如对每个字符说一个布尔值,那么它看起来更像是

boolean[] myMethod(String s) {
    // generates the booleans
}

你必须以其他方式访问它们,也许是这样:

String str = "some string";
boolean[] bools = myMethod(str);
for(int i = 0; i < str.length(); i++) {
    someOtherMethod(bools[i]);
}

有关此内容的更多信息,您必须发布代码。

回应发布的代码,这就是我要做的事情

/**
 * Parse a string to get how many words it has
 * @param s the string to parse
 * @return the number of words in the string
 */
public int parse(String s) {
    int numWords = 1; // always at least one word, right?
    for(int i = 0; i < s.length(); i++) {
        if(isDelim(s.charAt(i)) numWords++;
    }
    return numWords;
}

private boolean isDelim(char c) {
    for(char d : delims) if(c == d) return true;
    return false;
}

答案 1 :(得分:1)

从我看到的,你可能正在使用String.split()。 您也可以使用正则表达式,因此您可以包含3个不同的分隔符。 如果您仍需要作品的数量,您可以获得结果的长度。

http://download.oracle.com/javase/6/docs/api/java/lang/String.html#split%28java.lang.String%29

假设delims是一个字符数组,使用它来生成正则表达式是安全的:

String regex = "[" + new String(delims) + "]";
String result = params.split(regex);