JDBC SQL: строка оператора if == char.toString не работает. :) - PullRequest
1 голос
/ 31 марта 2011

Почему мой оператор if if (tablename == Character.toString('S')) не регистрируется как true? Оба распечатывают be S ... Есть ли другое, почему я могу это реализовать? Я мог бы сделать! =, Но мне нужно добавить больше аргументов к моему оператору if, и мое имя таблицы должно оставаться строкой.

System.out.println("Enter table:");
String line = input.readLine();
StringTokenizer tk = new StringTokenizer(line);
String tablename = tk.nextToken();

DatabaseMetaData d = conn.getMetaData();
ResultSet rm = d.getColumns(null, null, tablename, null);

System.out.println(tablename);
System.out.println(Character.toString('S');
 System.out.println(tablename == Character.toString('S');

if (tablename == Character.toString('S')){
  System.out.println("Woot!");
}

ВЫВОД: Введите таблицу: S S S ложь

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Поскольку вы сравниваете оба объекта на равенство, вам нужно использовать:

if (tablename.equals(Character.toString('S'))) {
   ...

Вот хорошая ссылка на сравнение равенства в Java:

http://leepoint.net/notes-java/data/expressions/22compareobjects.html

0 голосов
/ 31 марта 2011

== относится только к равенству указателя, который возвращает Character.toString (). Необходимо использовать ниже.

tablename.equals(Character.toString('s'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...