Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Поиск строки в подстроке


Автор: Grigorill 20.3.2012, 22:05
Здравствуйте с Java я только начал знакомиться. И столкнулся с задачей поиска подстроки в строке. Например,  у меня есть ответ, строка "10 десять" и есть строка которую ввожу я, "10 яблок"  должно быть установлено соответствие. Я реализовал сравнение через indexof но проблема в том что если при вводе строки "10" соответствие будет, то при вводе строки "10 яблок" соответствия он уже не находит. Буду благодарен за любой пример или ссылку, заранее спасибо.

Автор: Pawl 20.3.2012, 22:35
можно, к примеру, использовать метод 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");

Автор: Grigorill 21.3.2012, 07:56
Спасибо за совет, но в данном случае происходит тоже самое. В моем случае мне нужно сравнение каждого слова отдельно. Вот есть у меня строка "10 ten десять" и есть строка которую я ввожу для сравнения "10 поездов ехали по дороге" и в данном случае он должен найти соответствие.  

Автор: Stolzen 21.3.2012, 10:01
Разбейте строку на слова и ищите их по отдельности

Код

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;
}

Автор: Grigorill 21.3.2012, 12:33
Спасибо, огромное за подсказку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)