2014-12-07 94 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++; 
    } 
}