我如何遍历字符串以找到特定字符?

时间:2019-03-15 00:06:50

标签: java

我很难弄清楚为什么我的代码无法正常工作。我试图将输出停止在一个特定的字母上,但是它将继续遍历整个字符串。这就是我所拥有的,

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));
    }
}

3 个答案:

答案 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