我有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");}
}
为什么打印'不'??
答案 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");}
}
}