我很难弄清楚为什么我的代码无法正常工作。我试图将输出停止在一个特定的字母上,但是它将继续遍历整个字符串。这就是我所拥有的,
public static char stringIterator(String string) {
System.out.println(string);//Keep this line
char lastChar = string.charAt(string.length() - 1);
if (lastChar == 'M') {
return lastChar;
}
else if (string.length() == 1) {
return lastChar;
}
else {
return stringIterator(string.substring(0, string.length() - 2));
}
}
答案 0 :(得分:2)
如果您只想查看它是否具有,则可以使用
string.contains('char');
如果您想遍历/迭代
for( int i = 0; i < string.length(); i++)
if(string.at(i) == '#')
{ //whatever you want here
}
答案 1 :(得分:0)
您可能对此有过多的想法... Java有很好的处理字符串的资源,请查看文档: Java String Documentation
if (string.contains('m')){
//dostuff
}
if (string.endsWith('m')){
//dostuff
}
等
对于您的迭代问题,您必须发布其余的代码,因为看起来您的循环正在从此方法之外的某个地方调用stringIterator(String)
。
(如果不进行任何迭代,它实际上不是stringIterator)
这也是最后一行代码:
return stringIterator(string.substring(0, string.length() - 2));
是递归的(调用自身)...这可能会给您带来麻烦。递归肯定有用途,在一维数组中查找内容不是这些用途之一。假设您的循环工作正常,这可能是阻止您停止输出的原因。
答案 2 :(得分:0)
public String substring(int begIndex,int endIndex)-返回一个新字符串,它是字符串的子字符串
参数:
beginIndex:开始索引,包括端点。
endIndex:结束索引,排他。
(例如):字符串字符串=“ NAME”
string.substring(0,string.length()-2)-返回“ NA”
string.substring(0,string.length()-1)-返回“ NAM”。使用它,这样您就可以减去字符串的最后一个字符。
迭代方法
passReqToCallback