A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class MyJava {
        public static void main(String[] args) {
                String srt = "woyaoxuejava,xihuanjava,aijava,javajavawozuiai" ;
                char[] ch=srt.toCharArray();
                int x = 0;
                for (int i = 0; i < ch.length; i++) {
                        String a = ch[i]+"";
                        if (a == "j") {
                                x++;
                               
                                break;
                        } else {
                                continue;
                        }
                       
                }
                System.out.println(x);
        }
}

4 个回复

正序浏览
这写的真不错,
回复 使用道具 举报
我知道了字符串做拼接用XJAD看原码可以知道做拼接做的操作是new了一个StringBuider的所以地址会不一样,。。。
回复 使用道具 举报
如果你非要比较两个字符串,别用==判断,用equals方法判断,还有就是if后面不要加break;加了表示退出循环,只要匹配到一个正确后面就不会做循环了,
现在我有一个问题对于你写的这个方法:a == "j"会一直为false?你前面应该会在常量池添加一个String a = ch[i]+"";的字符串,就算是用==号比较的是地址值,那也应该判断为true才对
回复 使用道具 举报
public class MyJava {
    public static void main(String[] args) {
            String srt = "woyaoxuejava,xihuanjava,aijava,javajavawozuiai" ;
            char[] ch=srt.toCharArray();
            int x = 0;
            for (int i = 0; i < ch.length; i++) {
                    //String a = ch[i]+"";//不用做类型转换
                    if (ch[i]== 'j') {
                            x++;
                           
//                            break;
//                    } else {
//                            continue;
                    }
                  
            }
            System.out.println(x);
    }
}
判断两个字符是否一样直接用==,不用类型转来转去这么麻烦
另外建议楼主认真看看break和continue的区别
break是直接跳出循环,continue是结束本次循环,继续下一次
也就是说即使你前面的代码对了,结果也只会是1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马