변환 된 텍스트를 HTML 파일을 해시 테이블에 저장하여 나중에 검색하려고합니다. 나는 그것을 구현하는 방법을 이해하지 못한다. 도와주세요. 해시 테이블에 텍스트 파일을 저장하려면 어떻게해야합니까?HashTable에 파일 저장하기
package hashTable;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger;
import java.util.Scanner;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class HashMap {
// Setting table size to a max of 32, value used to modulus for hash value.
private final static int TABLE_SIZE = 32;
HashEntry[] table;
HashMap() {
table = new HashEntry[TABLE_SIZE];
for (int i = 0; i < TABLE_SIZE; i++)
table[i] = null;
}
/* function to retrieve value from the table according to key */
public int get(String key) {
int hash = new BigInteger(toAscii(key)).mod(new BigInteger(((Integer)TABLE_SIZE).toString())).intValue();
while (table[hash] != null && table[hash].getKey() != key)
hash = (hash + 1) % TABLE_SIZE;
if (table[hash] == null)
return -1;
else
return table[hash].getValue();
}
/* function to add value to the table */
public void put(String key, int value) {
//creating hash code using key value given as a string
int hash = new BigInteger(toAscii(key)).mod(new BigInteger(((Integer)TABLE_SIZE).toString())).intValue();
while (table[hash] != null && table[hash].getKey() != key)
hash = (hash + 1) % TABLE_SIZE;
table[hash] = new HashEntry(key, value);
}
/* value to create the Hash code from he name entered, basically converting name to ASCII */
public static String toAscii(String s){
StringBuilder sb = new StringBuilder();
long asciiInt;
// loop through all values in the string, including blanks
for (int i = 0; i < s.length(); i++){
//getting Ascii value of character and adding it to the string.
char c = s.charAt(i);
asciiInt = (int)c;
sb.append(asciiInt);
}
return String.valueOf(sb);
}
public void HtmltoText(String fn){
try{
String uri="C:/Users/Bharadwaj/Downloads/W3C Web Pages";
BufferedReader in = new BufferedReader(new FileReader(uri));
String st=new String();
String str;
while((str=in.readLine())!=null){
st += "\n" + str.replace("<br", "\n<br");
}
Document s=Jsoup.parse(st);
// System.out.println(s1);
String text=s.text();
// System.out.println(filename.substring(0,filename.length()-4));
String txtpath="C:/Users/Bharadwaj/Downloads/W3C Web Pages/Text";
System.out.println(text);
String newname=txtpath+fn.substring(0,(fn.length()-4))+".txt";
BufferedWriter writerTxt = new BufferedWriter(new FileWriter(newname));
writerTxt.write(text);
writerTxt.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[]args) throws IOException{
HashMap entry = new HashMap();
String uri="C:/Users/Bharadwaj/Downloads/W3C Web Pages";
File fil=new File(uri);
System.out.println(fil);
entry.HtmltoText(uri);
}
}
에 오신 것을 환영합니다. 질문을 올바르게하는 방법에 대해 살펴보십시오. 문제를 나타 내기 위해 코드를 최소한으로 끓여주십시오. 당신의 문제는 정확히 무엇입니까? HTML 변환? 배열에 문자열 저장? 당신의 HashEntry 타입은 무엇입니까? – Heri
이 코드를 실행할 때 무엇을 얻고 있습니까? 어떤 오류가 있습니까? [ask]를 검토하십시오. – Fencer04
파일을 찾을 수 없습니다. – Bharath