Вернуться   Форумы Якутск Онлайн > Hi-Tech > Сисадмины и программисты
Сисадмины и программисты Форум посвящён системным администраторам и программистам

Ответ
 
Опции темы Опции просмотра

Поиск слова в строке(java)
Старый 18.12.2009, 10:05   #1
Jinc
Постоялец
 
Аватар для Jinc
 
Jinc вне форума
Регистрация: 10.01.2009
Сообщений: 1,268
Jinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутацию
Question Поиск слова в строке(java)

Есть файл с текстом "Вася = человек"(пример), надо найти в файле слово "Вася = ", а то что на против ровно(т.е "человек") записать в jTextField1. При этом вместо "человек" могут быть другие слова.
__________________
Сильные, умные, вольные...
  Ответить с цитированием

Старый 18.12.2009, 12:50   #2
Jinc
Постоялец
 
Аватар для Jinc
 
Jinc вне форума
Регистрация: 10.01.2009
Сообщений: 1,268
Jinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутацию
По умолчанию

Cujoko, благодарю

этот код пашет

Код:
String str = null;

        try {
            LineNumberReader lnr = new LineNumberReader(new BufferedReader(new FileReader("/home/waterman/file_1")));

            Pattern p1 = Pattern.compile(".*Вася = (\\w+).*");
            while (((str = lnr.readLine()) != null)) {
                Matcher m = p1.matcher(str);
                if (m.find()) {
                    jTextField1.setText(jTextField1.getText() + m.group(1));
                }
            }
            lnr.close();
        } catch (IOException e) {
            javax.swing.JOptionPane.showMessageDialog(null, "Ошибка\n");
        }
    }
но теперь другая проблема глуки с "/" и "\", если в файле строка "Вася = человек/корм", то в jTextField1 выводится то ко "человек"
__________________
Сильные, умные, вольные...
  Ответить с цитированием

Старый 18.12.2009, 15:17   #3
Jinc
Постоялец
 
Аватар для Jinc
 
Jinc вне форума
Регистрация: 10.01.2009
Сообщений: 1,268
Jinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутацию
По умолчанию

Код:
Pattern p1 = Pattern.compile(".*Вася = ([\\w/\\\\]+).*");
благодарю! работает

я так понял [xyz] это значение которые могут принимать символы
__________________
Сильные, умные, вольные...
  Ответить с цитированием

Старый 23.12.2009, 15:09   #4
Jinc
Постоялец
 
Аватар для Jinc
 
Jinc вне форума
Регистрация: 10.01.2009
Сообщений: 1,268
Jinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутацию
По умолчанию

есть файл в нём 3-и строки.
Код:
Вася = человек
Петя = человек
Федя = человек
хочу найти строки(словосочетания) "Вася = человек" если нашло то поставить
галочку(jCheckBox1.setSelected(true)) и так для всех 3 строк. НО почему то поиск срабатывает только для последний строки в файле.
Код:
        String str1 = null;
        try {
            LineNumberReader lnr1 = new LineNumberReader(new BufferedReader(new FileReader("/home/waterman/file_2")));           
        Pattern p1 = Pattern.compile(".*Вася = человек.*");
        Pattern p2 = Pattern.compile(".*Петя = человек.*");
        Pattern p3 = Pattern.compile(".*Федя = человек.*");
            while ((str1 = lnr1.readLine()) != null) {
                Matcher m1 = p1.matcher(str1);
                Matcher m2 = p2.matcher(str1);
                Matcher m3 = p3.matcher(str1);          
                if (m1.find()) {
                    jCheckBox1.setSelected(true);
                } else {
                    jCheckBox1.setSelected(false);
                }
               if (m2.find()) {
                    jCheckBox2.setSelected(true);
                } else {
                    jCheckBox2.setSelected(false);
                }
                if (m3.find()) {
                    jCheckBox3.setSelected(true);
                } else {
                    jCheckBox3.setSelected(false);
                }
           lnr1.close();
        } catch (IOException ex1) {
            javax.swing.JOptionPane.showMessageDialog(null, "error!");
        }
}
__________________
Сильные, умные, вольные...
  Ответить с цитированием

Старый 24.12.2009, 14:03   #5
Jinc
Постоялец
 
Аватар для Jinc
 
Jinc вне форума
Регистрация: 10.01.2009
Сообщений: 1,268
Jinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутацию
По умолчанию

всем спасибо, ошибку нашол :D
__________________
Сильные, умные, вольные...
  Ответить с цитированием

Старый 24.12.2009, 16:49   #6
Moonlight
Постоялец
 
Аватар для Moonlight
 
Moonlight вне форума
Регистрация: 15.05.2004
Сообщений: 863
Moonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутациюMoonlight имеет наиславнейшую репутацию
По умолчанию

изучайте перл
  Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +9, время: 11:14.


vBulletin skin developed by: eXtremepixels
Powered by vBulletin® Version 3.6.3
Copyright ©2000 - 2024, Якутск-Online. Перевод: zCarot