我有一个方法可以将一堆字符发送到另一个方法,如果存在某些字符,该方法将返回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
}
答案 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);