Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск строки в подстроке 
:(
    Опции темы
Grigorill
Дата 20.3.2012, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 27.1.2011

Репутация: нет
Всего: нет



Здравствуйте с Java я только начал знакомиться. И столкнулся с задачей поиска подстроки в строке. Например,  у меня есть ответ, строка "10 десять" и есть строка которую ввожу я, "10 яблок"  должно быть установлено соответствие. Я реализовал сравнение через indexof но проблема в том что если при вводе строки "10" соответствие будет, то при вводе строки "10 яблок" соответствия он уже не находит. Буду благодарен за любой пример или ссылку, заранее спасибо.
PM MAIL   Вверх
Pawl
Дата 20.3.2012, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



можно, к примеру, использовать метод contains класса String:
Код

public class Test {
    public static void main(String[] args) {
        String str = "10 fff";
        boolean isDez = str.contains("10");
        System.out.println(isDez);              
    }
}

выдаст true, если в каком-либо месте строки находится 10. Если же надо проверять начинается ли строка с 10, надо использовать метод startsWith и в примере тогда написать boolean isDez = str.startsWith("10");


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
Grigorill
Дата 21.3.2012, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 27.1.2011

Репутация: нет
Всего: нет



Спасибо за совет, но в данном случае происходит тоже самое. В моем случае мне нужно сравнение каждого слова отдельно. Вот есть у меня строка "10 ten десять" и есть строка которую я ввожу для сравнения "10 поездов ехали по дороге" и в данном случае он должен найти соответствие.  
PM MAIL   Вверх
Stolzen
Дата 21.3.2012, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



Разбейте строку на слова и ищите их по отдельности

Код

public static void main(String[] args) {
    String toLook = "10 десять";
    System.out.println(contains("10 яблок", toLook));
}

public static boolean contains(String input, String toLook) {
    String[] strings = toLook.split("\\s+");

    for (String s : strings) {
        if (input.contains(s)) {
            return true;
        }
    }

    return false;
}



--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Grigorill
Дата 21.3.2012, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 27.1.2011

Репутация: нет
Всего: нет



Спасибо, огромное за подсказку.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0999 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.