Массив
A char
равен , а не a String
.На самом деле, вы сравниваете эталонные значения объектов (String
и char[]
), которые никогда не будут истинными.
Вам необходимо либо преобразоватьchar
массив в String
и использование String.equals(otherString)
или преобразование String
в char
массив и сравнение массивов со статическим методом из класса Arrays
.
char[] x = new char[3];
x[0] = 'a'; x[1] = 'b'; x[2] = 'c';
String b = new String("abc");
String otherString = new String(x);
if (b.equals(otherString))
{
// they match
}
Или используя статический метод из Arrays
...
char[] myStringAsArray = b.toCharArray();
if (Arrays.equals(x, myStringAsArray))
{
// they match
}
Как отмечается в ответе Алекса, в строке Java нет завершающего нуля.
JavaDoc:
http://download.oracle.com/javase/6/docs/api/java/lang/String.html
http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html