PDA

Просмотр полной версии : Поиск слова в строке(java)


Jinc
18.12.2009, 10:05
Есть файл с текстом "Вася = человек"(пример), надо найти в файле слово "Вася = ", а то что на против ровно(т.е "человек") записать в jTextField1. При этом вместо "человек" могут быть другие слова.

Jinc
18.12.2009, 12:50
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 выводится то ко "человек"

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

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

Jinc
23.12.2009, 15:09
есть файл в нём 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!");
}
}

Jinc
24.12.2009, 14:03
всем спасибо, ошибку нашол :D

Moonlight
24.12.2009, 16:49
изучайте перл