Java-палиндром

у меня есть вопрос новичка в java, так как я не знаю, что не так с моим массивом, потому что я просто не могу индексировать их. да, я знаю, что есть еще один более быстрый способ проверить палиндром, но, пожалуйста, взгляните.

public boolean palindrom (String a){
    List<String> normal = new ArrayList<String>();
    List<String> modified = new ArrayList<String>();
    for (String x: a.split("")){
        normal.add(x);
    }

    for (String x:new StringBuilder(a).reverse().toString().split("")){
        modified.add(x);
    }

    for (int i=0;i<a.split("").length;i++){
        if (normal[i]!=modified[i]){
          //in this line above is error as it doesnt recognise "normal" and "modified" arrays
            return false;
        }
    }
    return true;

person Jernej Habjan    schedule 14.02.2016    source источник
comment
Что вы имеете в виду под не могу проиндексировать их? В чем именно проблема?   -  person Atri    schedule 14.02.2016
comment
normal и modified - это List, а не Array, вы не можете ссылаться как normal[i]. Вам нужно сделать normal.get(i).   -  person Atri    schedule 14.02.2016
comment
ошибка, которую я получаю: Тип выражения должен быть типом массива, но он разрешается в List‹String›. я считаю, что массив не определен правильно   -  person Jernej Habjan    schedule 14.02.2016
comment
Вы должны добавить информацию об ошибке в свой вопрос, чтобы другим не пришлось искать их в комментариях. Для этого используйте параметр edit.   -  person Pshemo    schedule 14.02.2016
comment
Также, чтобы предотвратить ваш следующий вопрос, прочитайте: Как мне сравнивать строки в Java?   -  person Pshemo    schedule 14.02.2016


Ответы (2)


Это не массивы, а ArrayList
Чтобы получить элемент i, вам нужно сделать normal.get(i)

https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

person Flikk    schedule 14.02.2016
comment
спасибо! что сделал это спасибо - person Jernej Habjan; 14.02.2016

Списки не индексируются так же, как массивы. Вместо использования normal[i] вы должны использовать normal.get(i).

for (int i=0;i<a.split("").length;i++){
    if (normal.get(i) != modified.get(i)){
        return false;
    }
}
person lhoworko    schedule 14.02.2016