그래서 나는 이것을 약간의 시간 동안 작동 시키려고 노력했습니다. 필자가 프로그래머가 아니라고 말하면서이 사실을 알리겠습니다. 최근에 내가 취한 취미는 더 많습니다. 두 줄의 텍스트 파일을 줄 단위로 검색하려고했습니다. 하나의 단어는 한 줄에 하나씩 약 10 개, 다른 단어에는 한 줄에 하나 더 많은 단어가 있습니다. 내가 좋아하는 것은 내 프로그램이 더 작은 텍스트 파일에있는 각 단어가 더 큰 단어에 몇 번이나 나왔는지 말하는 것입니다. 지금까지 내가 무엇을 가지고 :하나의 텍스트 파일을 사용하여 다른 텍스트 파일을 검색합니다.
import java.util.Scanner;
import java.io.File;
import java.util.regex.Pattern;
public class StringSearch
{
public static void main (String args[]) throws java.io.IOException
{
int tot = 0;
Scanner scan = null;
Scanner scan2 = null;
String str = null;
String str2 = null;
File file = new File("C:\\sample2.txt");
File file2 = new File("C:\\sample3.txt");
scan = new Scanner(file);
scan2 = new Scanner(file2);
while (scan.hasNextLine())
{
str = scan.nextLine();
tot = 0;
while (scan2.hasNextLine())
{
str2 = scan2.nextLine();
if(str.equals(str2))
{
tot++;
}
}
System.out.println("The String = " + str + " and it occurred " + tot + " times");
}
}
}
잘 모르겠어요 왜이 작동하지 않습니다. 첫 번째 텍스트 파일의 첫 번째 단어를 읽은 다음 두 번째 텍스트 파일에 나타나는 횟수를 계산하지만 첫 번째 파일의 두 번째 단어를 중지하고 이동하지 않습니다. 나는 그것이 의미가 있기를 바랍니다. 루프가 생각하는 동안 두 번째로 뭔가 잘못 됐습니다. 그러나 나는 무엇을 모릅니다.
그래서 도움을 주시면 대단히 감사하겠습니다. 이 작업을 수행하고 앞으로 더 복잡한 프로젝트로 이동하기를 바라고 있습니다. 어딘가에서 시작해야할까요?
건배 얘들 아
첫 번째 파일의 모든 단어를 배열에로드하는 경우 두 번째 파일에서 읽고 배열의 내용과 비교하면됩니다. 단어의 양은 메모리를 많이 차지하지 않을 정도로 작으며 한 파일 만 취급합니다. –
참고 : 쉘을 사용하여 :'fgrep -f sample2.txt sample3.txt' –