Laura Canter
Laura Canter

Reputation: 91

How can I compare a string and a char array in Java?

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

Answers (4)

hmatar
hmatar

Reputation: 2429

do as follows: if (word.equals(new String(asterixA))) { ... }

Upvotes: 0

Fritz
Fritz

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

PermGenError
PermGenError

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

assylias
assylias

Reputation: 328735

You can compare the arrays:

if (Arrays.equals(asterixA, word.toCharArray()) {}

Upvotes: 0

Related Questions