Question: I'm trying to compare a string and a character (after converting it to a string). The code is not working like I expect it to work.

```
package main;
import java.lang.Character;

public class Main {
    public static void main(String[] args) {
        char myChar = 'a';
        String myString = "a";
        if(myString == Character.toString(myChar)) {
            System.out.println("This SHOULD work! But it doesn't.");
        } else {
            System.out.println("This SHOULDN'T work! But it does.");
        }
    }
}

```

What am I doing wrong here?

Answer: 
Use:

```
if(myString.equals(Character.toString(myChar)))

```

instead of:

```
if(myString == Character.toString(myChar))

```

---

`==` tests whether the two references pointing to the same object in the memory or not, while `equals` method checks if the two references pointing to the same object **OR** they have the same contents.
Do not use == operator to compare strings. While string literals embedded to source code can be compared with this operator, this approach does not work for string objects, you get dynamically.

It is because == compares references to objects, not the object values.

Use `String.equals()` method to compare strings objects.