簡體   English   中英

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

[英]how do i iterate through a string of characters to find a specific character?

我很難弄清楚為什么我的代碼無法正常工作。 我試圖將輸出停止在一個特定的字母上,但是它將繼續遍歷整個字符串。 這就是我所擁有的

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

如果您只想看看它是否有它,那么您將使用

string.contains('char');

如果您想遍歷/迭代則

for( int i = 0; i < string.length(); i++)
    if(string.at(i) == '#')
    { //whatever you want here
    }

您可能對此想法過度了……Java擁有很好的處理字符串的資源,請查看以下文檔: Java字符串文檔

if (string.contains('m')){
    //dostuff
    }

    if (string.endsWith('m')){
    //dostuff
    }

等等

至於您的迭代問題,您必須發布其余的代碼,因為看起來您的循環正在stringIterator(String)方法外部的某個地方調用stringIterator(String) (如果不進行任何迭代,它實際上不是stringIterator)

最后這行代碼:

return stringIterator(string.substring(0, string.length() - 2));

是遞歸的(調用自身)...這可能會給您帶來麻煩。 遞歸肯定有用途,在一維數組中查找內容不是這些用途之一。 假設您的循環工作正常,這可能是阻止您停止輸出的原因。

public String substring(int begIndex,int endIndex)-返回一個新字符串,它是字符串的子字符串。
beginIndex:開始索引(包含)。
endIndex:結束索引(不包括)。
(例如):字符串=“ NAME”
string.substring(0,string.length()-2)-返回“ NA”
string.substring(0,string.length()-1)-返回“ NAM”。 使用它,因此您將能夠減去字符串的最后一個字符。

迭代法

     public static char stringIterator(String string) {
     char lastChar = string.charAt(0);
       for(int i = string.length()-1 ;i>=0;i--) {
           System.out.println(string);//Keep this line
           lastChar = string.charAt(i);
           if (string.length() == 1 || lastChar == 'M') {
              break;
           } else {
              string = string.substring(0, i);
           }
        }
        return lastChar;
      }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM