Reputation: 91
In my program I'm trying to compare my char array asterixA[]
to a String word
in an if condition like:
if (word.equals(asterixA))
but it's giving me an error. Is there any other way I can compare them?
Upvotes: 8
Views: 25003
Reputation: 10055
You seem to be taking the "A String is an array of chars" line too literal. String
's equals
method states that
Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.
It all depends of the circumstances, but generally you compare two objects of the same type or two objects belonging to the same hierarchy (sharing a common superclass).
In this case a String
is not a char[]
, but Java provides mechanisms to go from one to the other, either by doing a String -> char[]
transformation with String#toCharArray()
or a char[] -> String
transformation by passing the char[]
as a parameter to String
's constructor.
This way you can compare both objects after either turning your String
into a char[]
or vice-versa.
Upvotes: 1
Reputation: 46428
you have to convert the character array into String or String to char array and then do the comparision.
if (word.equals(new String(asterixA)))
or
if(Arrays.equals(word.toCharArray(), asterixA))
BTW. if is a conditional statement not a loop
Upvotes: 18
Reputation: 328735
You can compare the arrays:
if (Arrays.equals(asterixA, word.toCharArray()) {}
Upvotes: 0