==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.
是==坏?什么时候应该不应该使用它?有什么不同?
此代码将字符串分隔为标记并将它们存储在字符串数组中,然后将变量与第一个主页进行比较...为什么它不起作用?
public static void main(String...aArguments) throws IOException {
String usuario = "Jorman";
String password = "14988611";
String strDatos = "Jorman 14988611";
StringTokenizer tokens = new StringTokenizer(strDatos, " ");
int nDatos = tokens.countTokens();
String[] datos = new String[nDatos];
int i = 0;
while (tokens.hasMoreTokens()) {
String str = tokens.nextToken();
datos[i] = str;
i++;
}
//System.out.println (usuario);
if ((datos[0] == usuario)) {
System.out.println("WORKING");
}
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个Java程序来比较两个字符串:
String s1 = "Hello";
String s2 = "hello";
if (s1.equals(s2)) {
System.out.println("hai");
} else {
System.out.println("welcome");
}
Run Code Online (Sandbox Code Playgroud)
它显示"欢迎".我理解它区分大小写.但我的问题是我想要比较两个没有区分大小写的字符串.即我期望输出hai.
"按字典顺序比较两个字符串"是什么意思?
我想使用二进制搜索算法来搜索用户在一个非常大的排序文件中输入的字符串.我无法将用户输入的字符串与位于文件中间行的字符串进行比较,以继续我的二进制搜索.
例如,如果用户的字符串是abcda,并且文件的字符串是abcza,则很明显用户的字符串小于文件的字符串.它是如何在java中实现的?如果您可以帮我提供示例代码,那将会很棒.
在Java中比较两个字符串最快的是什么?
有比平等更快的东西吗?
编辑:我无法帮助澄清问题.
我有两个字符串,按字母顺序排序,完全相同的大小
示例:abbcee和abcdee
字符串最长可达30个字符
我有一个问题,我很困惑.我在Android应用程序中有以下几行代码:
System.out.println(CurrentNode.getNodeName().toString());
if (CurrentNode.getNodeName().toString() == "start") {
System.out.println("Yes it does!");
} else {
System.out.println("No it doesnt");
}
Run Code Online (Sandbox Code Playgroud)
当我查看第一个println语句的输出时,它在LogCat中显示为"start"(显然没有引号).但是当if语句执行时,它会转到else语句并输出"No it does not".
我想知道节点的名称是否可能有某种非打印字符,所以我检查了来自getNodeName()的字符串的长度,它是5个字符长,正如您所期望的那样.
有谁知道这里发生了什么?
我试图比较两个edittext框的值.我想要的是比较passw1 = passw2.因为我的代码现在比较我输入的两个字符串,因为我无法比较它们.
final EditText passw1= (EditText) findViewById(R.id.passw1);
final EditText passw2= (EditText) findViewById(R.id.passw2);
Button buttoks = (Button) findViewById(R.id.Ok);
buttoks.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (passw1.toString().equalsIgnoreCase("1234") && passw2.toString().equalsIgnoreCase("1234")){
Toast.makeText(getApplication(),"Username and password match", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getApplication(),"Username and password doesn't match", Toast.LENGTH_SHORT).show();
}
} });
Run Code Online (Sandbox Code Playgroud) 我的要求是比较String到ArrayList包含字符串列表.任何人都可以建议我吗?
/**
* A method to compare Strings
* @param arg1
* @param arg2
* @return
*/
public boolean myQuickCompare(String arg1, String arg2) {
boolean a = arg1.length() == arg2.length();
if (a) {
for (int b = 0; b > arg1.length(); b++) {
if (arg1.charAt(b) != arg2.charAt(b)) {
a = false;
}
}
}
return a;
}
Run Code Online (Sandbox Code Playgroud)
我知道for循环是错误的方式,b永远不会大于字符串的长度.你会如何纠正这个问题?
你会给a和b什么明智的变量名?
可能重复:
Java String.equals与==
是否可以使用==运算符比较Java字符串?
为什么我经常看到,使用equals()方法代替?
是因为在与文字字符串(如"Hello")比较时使用==并不意味着调用equals()?