Mic*_*son 0 java string if-statement char
可能重复:
如何比较Java中的字符串?
(这可能是重复的,我不知道.equals.我道歉.)
当我决定制作一个4字符串的生成器时,我今天在Java中乱七八糟.我有程序生成我定义的每个可能的字符组合.这不是一个项目,我只是想看看这是否可行.我的问题在于字符串检查.我先发布代码.
String text = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char[] chars = text.toCharArray();
String name = "Mike";
String pass;
outerLoop:
for (int a = 0; a < chars.length; a ++) {
for (int b = 26; b < chars.length; b++) {
for (int c = 26; c < chars.length; c++) {
for (int d = 26; d < chars.length; d++) {
pass = chars[a]+""+chars[b]+""+chars[c]+""+chars[d];
System.out.println(pass);
if (pass == name){
System.out.print("password");
break outerLoop;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
嵌套if将检查是否pass等于Mike.如果是,则打印密码并打破for循环.
pass = chars[a]...是正确的方法吗?当我在没有测试的情况下进行测试时if,我将其打印出来并正确打印了所有组合.它确实印刷了Mike,但它没有抓住if.for循环,因此它们从小写开始,因为当我做了一些小的更改时程序需要一段时间才能运行. if (pass == name){
Run Code Online (Sandbox Code Playgroud)
应该
if (pass.equals(name)){
Run Code Online (Sandbox Code Playgroud)
使用String.equals()方法检查字符串相等性.==operator只是检查两个引用变量是否引用同一个对象.equals()方法检查两个字符串是否有意义相等.