그래서 내가하려는 것은 8 개의 사전 단어 목록 중 반복없이 하나의 단어 목록을 컴파일하는 것입니다. 일부 사전에는 구두점이있어 단어를 구분합니다. 아래는 문장 부호 제거와 관련된 내용입니다. 나는 스택 코드에서 정규 표현식에 관한 여러 가지 다른 해결책을 시도했다. 물론 코드에서 그대로 두었다. 어떤 이유로 든 그들 중 누구도 소스 사전에서 구두점을 제거하지 못합니다. 누군가 내가 잘못했는지 그리고 아마도 그것을 고치는 법을 말해 줄 수 있습니까? 나는 손실에 처해 있었고 직장 동료가 그것을 확인했는데 그는 이것이 잘 작동해야한다고 말한다.문자열 바꾸기로 Java에서 구두점 제거가 작동하지 않습니다.
int i = 1;
boolean checker = true;
Scanner inputWords;
PrintWriter writer = new PrintWriter(
"/home/htarbox/Desktop/fullDictionary.txt");
String comparison, punctReplacer;
ArrayList<String> compilation = new ArrayList<String>();
while (i <9)
{
inputWords = new Scanner(new File("/home/htarbox/Desktop/"+i+".txt"));
while(inputWords.hasNext())
{
punctReplacer = inputWords.next();
punctReplacer.replaceAll("[;.:\"()!?\\t\\n]", "");
punctReplacer.replaceAll(",", "");
punctReplacer.replaceAll("\u201C", "");
punctReplacer.replaceAll("\u201D", "");
punctReplacer.replaceAll("’", "'");
System.out.println(punctReplacer);
compilation.add(punctReplacer);
}
}
inputWords.close();
}
i = 0;
문자열은 변경 불가능합니다. 사용하는 메소드의 javadoc을 읽으십시오. –
문자열을 변경할 수 없다는 것을 알고 있지만, 이해할 수있는 replace 함수는 전체 문자열을 다시 만들어야합니다. –
다음과 같이하면됩니다 :'punctReplacer = punctReplacer.replaceAll (...);', 함수가 새로운 문자열을 반환하기 때문입니다. – MicSim