Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Поиск значения элемента в ArrayList() / 13 сообщений из 13, страница 1 из 1
22.10.2012, 17:59:52
    #38008625
filinvita
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
Всем привет.
ArrayList alStr содержит арифметическое выражение:[18, +, 5, *, 4.74, /, 2, -, 38].
Как в списке найти значение "*"?
пробовал так, не работает.
Код: java
1.
2.
3.
4.
         for(int i = 0; i < alStr.size(); i++){
              if(alStr.get(i) == "*"){
               System.out.println("i:" + i);
              }


как реализовать поиск?
спасибо
...
Рейтинг: 0 / 0
22.10.2012, 18:25:06
    #38008668
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
строки сравниваются с помощью метода equals
...
Рейтинг: 0 / 0
22.10.2012, 19:07:25
    #38008731
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
filinvitaкак реализовать поиск?Скорее всего вам нужен поиск в строке (а если точнее - в элементе списка):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
List<String> alStr = Arrays.asList("[18, +, 5, *, 4.74, /, 2, -, 38]");
for (String s: alStr) {
    System.out.println(s.indexOf('+')); // 5
    System.out.println(s.indexOf('-')); // 26
    System.out.println(s.indexOf('*')); // 11
    System.out.println(s.indexOf('/')); // 20
    System.out.println(s.indexOf('Ъ')); // -1 (не нашел)
}
...
Рейтинг: 0 / 0
23.10.2012, 00:32:15
    #38009039
filinvita
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
Дано арифметическое выражение в виде строки.
Строку я разбил на числа и арифметические знаки, поместил их в ArrayList, для дальнейшей работы с ними,
а именно нахождение результата арифметического выражения.
Возвращаться к строке мне не нужно.
М/б есть смысл перейти к массиву строк String[] alStr;
Код: java
1.
2.
3.
4.
    String[] alStr1 = {"18","+","5","*","4.74","/","2","-","38"};
    for (String s: alStr1) {
       System.out.println("+:" + s.indexOf('+')); //возвращает 0 на втором элементе
    }


на остальных элементах возвращает -1.
не могу понять как мне это может помочь?
помогите пожалуйста.
...
Рейтинг: 0 / 0
23.10.2012, 00:52:15
    #38009045
filinvita
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
А если поступить так:
Код: java
1.
2.
3.
4.
5.
6.
7.
    String[] alStr1 = {"18","+","5","*","4.74","/","2","-","38"};
    for (i = 0; i < alStr1.length; i++) {
       int index = alStr1[i].indexOf('+'); //возвращает 0
       if(index == 0){
          System.out.println("искомый символ в элементе: " + i); // 1
       }
    }


есть изящней варианты?
...
Рейтинг: 0 / 0
24.10.2012, 03:41:48
    #38010760
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
filinvitaСтроку я разбил на числа и арифметические знаки Тада используйте equals (см. выше).
Или воспользоваться готовым решением , например.
...
Рейтинг: 0 / 0
25.10.2012, 15:46:20
    #38013321
avp.mk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
filinvitaкак реализовать поиск?
В классе ArrayList поиск реализован. Как и в других не абстрактных классах реализующих List.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
import java.util.ArrayList;
import java.util.List;

public class LookingInArrayList {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();

        list.add("+");
        list.add("-");
        list.add("=");
        list.add("/");
        list.add("ff");
        list.add("157");
        list.add("ff");
        list.add("*");


        if (list.contains("ff")) {
            System.out.println("arrayList содержит (contains) ff");

            System.out.print("Первый раз встретился под индексом ");
            System.out.println(list.indexOf("ff"));

            System.out.print("Последний раз встретился под индексом ");
            System.out.println(list.lastIndexOf("ff"));
        }

        System.out.println();
        
        if (list.contains("f")) {
            System.out.println("f содержит");
        } else {
            System.out.println("f НЕ содержит");
        }
    }
}
...
Рейтинг: 0 / 0
25.10.2012, 20:51:42
    #38013764
Alex_1976
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
Так, что-то не понял какие проблемы? Тот цикл , что ты написал в своем первом вопросе - сообщении, жизнеспособен даже без equals. Другой вопрос, может у тебя несколько знаков умножения в выражении может быть, так это другой вопрос.
Можно получать массив позиций запрашиваемого char. А вообще есть алгоритм как парсить формулу.
...
Рейтинг: 0 / 0
25.10.2012, 22:51:00
    #38013831
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
Alex_1976,

Тот цикл , что ты написал в своем первом вопросе - сообщении, жизнеспособен даже без equals
Код: java
1.
2.
System.out.println("*" == new String("*"));
System.out.println("*".equals( new String("*")));
...
Рейтинг: 0 / 0
26.10.2012, 07:51:58
    #38013986
Alex_1976
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
javapecker - у Вас есть сомнения.

Я сказал что работать это будет.

public static void main(String[] args) {
// TODO code application logic here
ArrayList<String> str = new ArrayList<String>() ;
str.add("1");
str.add("2");
str.add("*");
str.add("equals");
for (int i=0;i<str.size();i++){
if ("*"==str.get(i)) System.out.println(String.valueOf(i));
}
}
...
Рейтинг: 0 / 0
26.10.2012, 10:52:33
    #38014205
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
Alex_1976, да, у меня есть сомнения. Вы сказали что работать будет не "это", а
Тот цикл , что ты написал в своем первом вопросе
а в первом вопросе не указывается, как значения попали в ArrayList.
Код: java
1.
2.
3.
4.
str.add("1");
str.add("2");
str.add("*");
str.add("equals"); 
...
Рейтинг: 0 / 0
26.10.2012, 12:03:13
    #38014312
Alex_1976
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
Так вот если Вы не уверены как они туда попали, а уже пытаетесь уверить что работать не будет :)
Я сказал " вполне" - жизнеспособен. :)
Думаю не стоит разводить холивар.
...
Рейтинг: 0 / 0
26.10.2012, 12:15:53
    #38014335
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск значения элемента в ArrayList()
Alex_1976,
да, что-то я занудствую, это к зиме)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Поиск значения элемента в ArrayList() / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]