У меня есть небольшая программа java, которая ищет содержимое всех * .txt файлов в папке для определенной строки.Поиск точного соответствия возвращает подстроки.
Пример моей проблемы:
- Введите строку для поиска:
- Введите строку для поиска: 6570
- Введите строку для поиска: 6570
Найдено 2 раз (а) в kyle.txt !
Найдено 2 раз (а) в kylezz.txt!
Нажмите любую клавишу, чтобы продолжить. , ,
Проблема:
Он ищет 6570, однако I результаты съемки для значений, как это с этой строкой:
11111116570111111 657011111 111116570 6570
Вопрос: Я хочу, чтобы искать только точная строка, например: «6570». как я могу вернуть его только точное значение 6570? Я не хочу никаких дополнительных символов в начале или конце, только точное значение.
Вот мой код:
import java.io.*;
import java.util.*;
public class FileScanner {
public static void main(String args[]) {
System.out.print("Enter string to find: ");
Scanner sc = new Scanner(System.in);
find(sc.nextLine());
}
public static void find(String delim) {
File dir = new File("files");
if (dir.exists()) {
String read;
try {
File files[] = dir.listFiles();
for (int i = 0; i < files.length; i++) {
File loaded = files[i];
if (loaded.getName().endsWith(".txt")) {
BufferedReader in = new BufferedReader(new FileReader(
loaded));
StringBuffer load = new StringBuffer();
while ((read = in.readLine()) != null) {
load.append(read + "\n");
}
String delimiter[] = new String(load).split(delim);
if (delimiter.length > 1) {
System.out.println("Found "
+ (delimiter.length - 1) + " time(s) in "
+ loaded.getName() + "!");
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.out.println("error: dir wasn't found!");
}
}
}
Спасибо, ребята, я действительно надеюсь, что вы можете помочь мне с моей проблемой программирования. Я пытаюсь исправить это примерно месяц, и теперь я прошу помощи.
Формат исходного кода или его невозможно прочитать – rachvela