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

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

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

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

28.05.2016, 00:05. Просмотров 142. Ответов 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 Замена цвета Background-а на заданный
Android Замена элемента в ListView
Android Замена кнопки на задержку
Android Замена jdk в eclipse
Замена фрагмента из другого класса Android
Замена флеш для андроид приложения Android
Получить JSON и передать все его параметры его в Intent. Использован автофильтр Android
Замена строки id на переменную типа String Android
Android Положение лица и его замена
Замена изображения в imageview по нажатию Android
Android Замена WebView
Автоматическая замена символов Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
28.05.2016, 11:35     Поиск в строке слова из массива и замена его #2
amasaemi, через цикл
fraley
95 / 95 / 34
Регистрация: 24.05.2015
Сообщений: 285
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();
        }
    }
}
Паблито
2026 / 1768 / 549
Регистрация: 12.05.2014
Сообщений: 6,276
Завершенные тесты: 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     Поиск в строке слова из массива и замена его
Ответ Создать тему
Опции темы

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