Если условие не выполнено? - PullRequest
0 голосов
/ 03 марта 2012

Я хочу прочитать символ String за символом, который уже находится в массиве.

String ss = "makassar";
String my_array[] = ss.split("");
for (int i = 1; i < ss.length()+1; i++) {
  if (my_array[i]=="m") {
     Toast toast = Toast.makeText(this, "Array is M", Toast.LENGTH_SHORT);
     toast.setGravity(Gravity.CENTER, 0, 0);
     toast.show();
     // Toast not show
  }
}

Тост не отображается. Зачем? Есть идеи?

Ответы [ 2 ]

4 голосов
/ 03 марта 2012

Вы должны использовать equals(), а не operator== для сравнения строк.

operator== проверяет идентичность объектов [если левый и правый объекты - это один и тот же объект], тогда как equals() проверяет равенство [если 2 строки равны друг другу ].

Изменить это:

if (my_array[i]=="m")

к этому:

if ("m".equals(my_array[i]))

Также обратите внимание, что my_array[1] является вторым элементом, а не первым, поэтому вы можете начать с i = 0, а не с i = 1

0 голосов
/ 03 марта 2012

Измените цикл for на цикл i с 0 на менее чем ss.length().

...