Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Козак Алексей
1 / 1 / 2
Регистрация: 11.02.2014
Сообщений: 97
1

Поиск слова строках файла

14.08.2015, 16:18. Просмотров 307. Ответов 3
Метки нет (Все метки)

Добрый день. Пишу программу которая считывая текстовый файл, должна выводить только те строки, в которых присутствует заданое слово (str).
Мой код:
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
package test2;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
 
public class RegExp {
 
    public static void main(String[] args) throws IOException {
        
        String str="[Шш]л[Аа]";
        
Scanner sc=new Scanner(new File("src/text1.txt"));
 
while(sc.hasNext()){
    if(sc.next()==str){
    System.out.println(sc.nextLine());
    continue;
    }
 
}
        }
        
    
}
Кто в курсе, подскажите что не так. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2015, 16:18
Ответы с готовыми решениями:

Изменить все ключевые слова в строках(в файле)
Есть файл *.txt. Пример файла: Текст текст текст текст текст текст текст текст...

поиск слов в небольших строках
всем привет. у меня задачка - из строк длинной одно-четыре слова находить...

Поменять местами слова в строках, которые состоят из 2 слов
То есть пользователь вводит в консоль несколько предложений, программа...

Глючит поиск в строках матрицы максимального элемента
Задача стояла: найти максимальные элементы в строках и их индексы. Но ерунда...

Поиск слова в массиве
String text = builder.toString(); ...

3
Welemir1
Автоматизируй это!
831 / 564 / 230
Регистрация: 30.03.2015
Сообщений: 2,191
14.08.2015, 16:21 2
Цитата Сообщение от Козак Алексей Посмотреть сообщение
Кто в курсе, подскажите что не так.
нельзя сравнивать ссылочные типы (в том числе стринг) через ==, так как в таком случае сравнивается не содержание строки, а равенство ссылок.
Нужно использовать метод equals.
Кроме того, вы в своем коде не рассматриваете возможность наличия в строке нескольких слов.
1
Козак Алексей
1 / 1 / 2
Регистрация: 11.02.2014
Сообщений: 97
14.08.2015, 16:45  [ТС] 3
ЗЫ. пока что она ничего не выводит, но и не крашится.

Добавлено через 3 минуты
Welemir1, Поменял на equals(), и немного изменил str. Ничего не изменилось..

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
package test2;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
 
public class RegExp {
 
    public static void main(String[] args) throws IOException {
        
        String str="([Шш]л[Аа])+";
        
Scanner sc=new Scanner(new File("src/text1.txt"));
 
while(sc.hasNext()){
    if(sc.next().equals(str)){
    System.out.println(sc.nextLine());
    continue;
    }
 
}
        }
        
}
Добавлено через 15 минут
Все понял, со всем разобрался. Тему можно закрывать.
0
siriusxm
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 3
14.08.2015, 16:48 4
Потому что в equals случае должно быть полное совпадение, а вам необходимо частичное.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2015, 16:48

Поиск слова в тексте
Добрый день. Имею длинную строку. Например:

Поиск слова в тексте
Добрый день. Имею длинную строку. Например: str = "Собаки: собака = Рекс...

Поиск слова в словаре
У меня есть большой текст и словарь на ~100 000 слов. Нужно найти в этом тексте...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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