2014-12-07 95 views
0

我有一個字符串:LOAN,NEFT,TRAN。我想根據在遍歷字符串期間得到,來對字符串進行子串處理。所以我試着先計算一下有多少,。但不知道用戶得到我想要的功能。此外,這應該是動態的,這意味着我應該能夠根據需要創建儘可能多的子串,根據數量, s。我嘗試下面的代碼:根據字符的存在子串字符串

package try1; 

    public class StringTest { 


    public static void main(String[] args) { 
     String str="LOAN,NEFT,TRAN"; 
     int strlen=str.length(); 
     int count=0; 
     for(int i=0;i<strlen;i++) 
     { 
      if(str.contains("'")) 
      count++; 
     } 
     System.out.println(""+count); 

     for (int j=0;j<count;j++) 
     { 
      //code to create multiple substrings out of str 
     } 
    } 
    } 

但我不認爲是我找的,因爲這裏的計數的值來了0。我應該使用什麼功能?

+0

首先......你正在'str.contains(「'」)'中尋找錯誤的字符。其次,你用分號關閉你的if。因此,無論String是否包含搜索子字符串,總是會執行「count ++;」。 – Tom 2014-12-07 15:11:59

+0

這是你不允許使用某些方法的家庭作業嗎? – Adam 2014-12-07 15:12:00

+0

@亞當,不,不是那樣......只是想自己學習。 – Mistu4u 2014-12-07 15:13:17

回答

2

您可以使用拆分獲得直接子:

String[] substrings = str.split(","); 

這是你想要的輸出是什麼:(如下圖所示)?

["LOAN", "NEFT", "TRAN"] // Array as an output 

或只拿到拆分字符的數量,你可以使用相同的線上面這樣的:

int count = substrings.length - 1; 
2

您的代碼實際上並沒有算,字符,因爲1)包含沒有考慮到你的循環變量2)它正在尋找',而不是,

假設你想在低級別工作而不是使用像.split()這樣的高級函數,那麼我會推薦以下。

for(char c : str.toCharArray()) { 
    if (c == ',') { 
     count++; 
    } 
}