SHOW:
|
|
- or go back to the newest paste.
1 | package task; | |
2 | ||
3 | import java.io.*; | |
4 | ||
5 | class SearchPhrase { | |
6 | ||
7 | // walk to root way | |
8 | - | public void walk(String path) throws IOException { |
8 | + | public void walk(String path, String whatFind) throws IOException { |
9 | ||
10 | File root = new File(path); | |
11 | File[] list = root.listFiles(); | |
12 | for (File titleName : list) { | |
13 | if (titleName.isDirectory()) { | |
14 | - | walk(titleName.getAbsolutePath()); |
14 | + | walk(titleName.getAbsolutePath(), whatFind); |
15 | - | // System.out.println( "Dir:" + titleName.getAbsoluteFile() ); |
15 | + | |
16 | if (read(titleName.getAbsolutePath()).contains(whatFind)) { | |
17 | - | System.out.println("File:" + titleName.getAbsoluteFile()); |
17 | + | System.out.println("File: " + titleName.getAbsoluteFile()); |
18 | } | |
19 | } | |
20 | } | |
21 | } | |
22 | ||
23 | // Read file as one line | |
24 | public static String read(String fileName) { | |
25 | StringBuilder strBuider = new StringBuilder(); | |
26 | try { | |
27 | - | fileName).getAbsoluteFile())); |
27 | + | |
28 | fileName))); | |
29 | String strInput; | |
30 | while ((strInput = in.readLine()) != null) { | |
31 | strBuider.append(strInput); | |
32 | strBuider.append("\n"); | |
33 | } | |
34 | ||
35 | in.close(); | |
36 | } catch (IOException e) { | |
37 | e.printStackTrace(); | |
38 | } | |
39 | ||
40 | return strBuider.toString(); | |
41 | } | |
42 | - | public static int searchPhrase(String fileName, String what) { |
42 | + | |
43 | - | int n = fileName.length(); // Длина строки, в которой происходит поиск |
43 | + | |
44 | - | int m = what.length(); // Длина подстроки |
44 | + | |
45 | SearchPhrase example = new SearchPhrase(); | |
46 | - | // Формирование таблицы сдвигов |
46 | + | |
47 | - | int[] table = new int[m]; |
47 | + | |
48 | - | table[0] = 0; |
48 | + | example.walk( |
49 | - | int shift = 0; |
49 | + | "C:\\Documents and Settings\\User\\Java Hangman\\Java\\Anton", |
50 | - | for (int q = 1; q < m; q++) { |
50 | + | "programmed"); |
51 | - | while (shift > 0 && what.charAt(shift) != what.charAt(q)) { |
51 | + | |
52 | - | shift = table[shift - 1]; |
52 | + | |
53 | } | |
54 | - | if (what.charAt(shift) == what.charAt(q)) |
54 | + | |
55 | - | shift++; |
55 | + |