Java Compare Strings

/** * 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; } 

I understand that a for loop is the wrong way, b will never be longer than the length of the string. How do you fix this problem?

What reasonable variable names will you give for a and b?

+1
source share
5 answers

Use arg1.equals(arg2) . No need for custom functions. Do not try to outwit Java developers. Most of the time they win.

+6
source

I understand that a for loop is the wrong way, b will never be longer than the length of the string. How do you fix this problem?

directly equals() String

What reasonable variable names will you give for a and b?

a may be result

b may be index


Here is the implementation of equals() from open jdk 7

  public boolean equals(Object anObject) { 1014 if (this == anObject) { 1015 return true; 1016 } 1017 if (anObject instanceof String) { 1018 String anotherString = (String)anObject; 1019 int n = count; 1020 if (n == anotherString.count) { 1021 char v1[] = value; 1022 char v2[] = anotherString.value; 1023 int i = offset; 1024 int j = anotherString.offset; 1025 while (n-- != 0) { 1026 if (v1[i++] != v2[j++]) 1027 return false; 1028 } 1029 return true; 1030 } 1031 } 1032 return false; 1033 } 
+2
source

I always use StringUtils.compare ( Apache Commons ). It also handles case zero for the String argument.

+2
source

a => result b => current

It would be useful to check if any of the arguments is null .

0
source

A few things:

  • When you compare strings for equality, use the .equals method. == is used to compare references to objects and see if they refer to the same instance..equals actually compares the characters inside the String object.
  • Even if you do something in your own way (which is wrong), the for loop should look like this:

    for (int b = 0; b <arg1.length (); b ++)

0
source

All Articles