Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
amasaemi
9 / 9 / 3
Регистрация: 22.08.2015
Сообщений: 108
#1

Поиск в строке слова из массива и замена его - Программирование Android

28.05.2016, 00:05. Просмотров 165. Ответов 4
Метки нет (Все метки)

Снова я) возник вопрос по джаве. Есть у меня строка "12 мая 2016". Есть ArrayList<Mounth>, в котором в каждом item хранятся 2 string'a, к примеру: "мая" и "май". Так вот, к той строке, которая была дана, нужно проверить, содержиться ли в ней элемент из первого столбца ArrayList'a, и если содержится, заменить его на элемент из второго столбца эррейлиста. Есть ли какие то функции для этого? Или только через цикл?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2016, 00:05     Поиск в строке слова из массива и замена его
Посмотрите здесь:
Android Положение лица и его замена
Поиск и замена слова в строке Java SE
C++ Поиск и замена слова в строке
Delphi Поиск слова в файле и его замена другим
C# Поиск слова в тексте и его изменение (замена)
C# Поиск sqrt в строке и замена его на корень аргумента
Поиск в строке всех повторений заданного слова, замена их звездочками C++
C# Замена слова в строке
Замена слова в строке C++
C (СИ) Замена слова в строке
C++ Builder Замена слова в символьной строке(Си)
Замена слова в строке на заданное Turbo Pascal

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
28.05.2016, 11:35     Поиск в строке слова из массива и замена его #2
amasaemi, через цикл
fraley
103 / 103 / 37
Регистрация: 24.05.2015
Сообщений: 313
28.05.2016, 17:26     Поиск в строке слова из массива и замена его #3
Цитата Сообщение от amasaemi Посмотреть сообщение
Есть у меня строка "12 мая 2016".
Эта строка всегда в одном и том же формате?
Или это будет произвольный текст?

Если первый вариант, то можно сплитом разделить строку, и вытащить месяц.
Месяцы же внести в HashMap и просто проверять есть ли такой ключ в HashMap.
Если есть, то соотвественно заменять.

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
public class MainActivity extends AppCompatActivity {
 
    private HashMap<String, String>  map;
    private String date="12 января 2016";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        map=new HashMap<>();
        map.put("января", "январь");
        map.put("февраля", "февраль");
        map.put("марта", "март");
        map.put("апреля", "апрель");
        map.put("мая", "май");
        map.put("июня", "июнь");
        map.put("июля", "июль");
        map.put("августа", "август");
        map.put("сентября", "сентябрь");
        map.put("октября", "октябрь");
        map.put("ноября", "ноябрь");
        map.put("декабря", "декабрь");
 
 
        String [] array=date.split(" ");
 
        if(map.containsKey(array[1])){
            date=date.replace(array[1], map.get(array[1]));
            Toast.makeText(MainActivity.this, date, Toast.LENGTH_SHORT).show();
        }
    }
}
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
28.05.2016, 18:17     Поиск в строке слова из массива и замена его #4
почему просто не пройтись регуляркой по всем строкам и не поменять одно на другое по списку?
регулярка если найдет совпадения - поменяет, без всяких проверок

и вот так хранить "мая май" одной строкой в листе - не очень умно
amasaemi
9 / 9 / 3
Регистрация: 22.08.2015
Сообщений: 108
28.05.2016, 23:54  [ТС]     Поиск в строке слова из массива и замена его #5
Цитата Сообщение от fraley Посмотреть сообщение
Если первый вариант, то можно сплитом разделить строку, и вытащить месяц.
Месяцы же внести в HashMap и просто проверять есть ли такой ключ в HashMap.
Если есть, то соотвественно заменять.
Я примерно так и сделал, спасибо

Цитата Сообщение от Паблито Посмотреть сообщение
почему просто не пройтись регуляркой по всем строкам и не поменять одно на другое по списку?
регулярка если найдет совпадения - поменяет, без всяких проверок
и вот так хранить "мая май" одной строкой в листе - не очень умно
Уже не первый раз слышу про "регулярные выражения", пора бы мне изучить, что это такое
Yandex
Объявления
28.05.2016, 23:54     Поиск в строке слова из массива и замена его
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru