搜索数组中的项目

时间:2011-12-26 16:36:34

标签: java

我有String str =“abc”;我想搜索它中是否有字母“b”。我将它转换为char []并创建一个for循环。这是我的代码[code]

      String str="abc";
      char c[] = str.toCharArray();

      for(int k=1;k<c.length;k++){
          if(c[k]=='b')
                {  
                System.out.println("yes");
                }
          else {
            System.out.println("no");}
                }

为什么打印'不'??

3 个答案:

答案 0 :(得分:4)

你可以str.contains("b")

就您的代码而言,您的k应初始化为0.以下代码打印:

  

无   是   无

String str = "abc";
char c[] = str.toCharArray();

for (int k = 0; k < c.length; k++) {
    if (c[k] == 'b') {
        System.out.println("yes");
    } else {
        System.out.println("no");
    }
}

更常规的方法可能是:

public boolean contains( String strToCheck, char strContent ) {
    // return strToCheck.contains(strContent);

    for( int i = 0; i < strToCheck.length(); i++ ) {
        if( strToCheck.charAt(i) == strContent ) {
            return true;
        }
    }

    return false;
}

一旦找到角色,就会停止检查。但实际上最好使用内置API。

答案 1 :(得分:1)

如果找到搜索键,就应该停止查看。

并且没有必要在第一次迭代时找到你的密钥

  String str="abc";
  char charArr[] = str.toCharArray();
  boolean found = false;

  for(char char: charArr){
      if(char =='b')
            {  
             found = true;
             break;
            }

    }

    if(found){  */Say Found*/ }else{/*Say no*/}

或只是

   stringInstance.contains("b");

答案 2 :(得分:0)

你可以用更简单的方式做到。

    String str1 = "abc";
    if(str1.contains("b")){
        System.out.println("i am here");
    }else{
        System.out.println("none");
    }

String类提供此方法来搜索其中的任何字符串。

如果您只想使用您的代码,那么您可以通过添加“break”语句来稍微修改它。

      String str="abc";
      char c[] = str.toCharArray();

      for(int k=0;k<c.length;k++){
          if(c[k]=='b')
                {  
                System.out.println("yes");
                break;
                }
          else {
            System.out.println("no");}
                }

        }