Java读取文件时如何使用哈希集添加带句点的字符串

Java How to Use Hashset Add String with Period when Reading from File

我正在使用带有 Buffer 的基本 FileReader 读取一个文件,并根据其中有一个句点将结果分类为不同的 HashSet 或没有。

稍后在我的程序中,我使用 contains() 方法将字符串与 HashSet 进行比较。

非句点集工作正常,但其中有句点的集搞砸了。我相信我已经将它缩小到 add 方法,尽管它也很可能与文件的读取方式有关。

{
    FileReader file;
    BufferedReader br;
    try {
        file = new FileReader(new File("./support/effective_tld_names.txt"));
        br = new BufferedReader(file);
        String temp;
        while ((temp = br.readLine()) != null) {
           if(!(temp.startsWith("//") || temp.isEmpty())){
               int dotCount = temp.length() - temp.replace(".", "").length();
               if(dotCount == 0){
                   singleTLDSet.add(temp);
               } else if(dotCount == 1) {
                   System.out.println(StringEscapeUtils.escapeJava(temp));
                   doubleTLDSet.add(StringEscapeUtils.escapeJava(temp));
               } else {
               }
           }
        }
        file.close();
        br.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

稍后在我的程序中:

Iterator i = ValidTLDS.getDoubleTLDSSet().iterator();
while(i.hasNext()) {
    String next = (String) i.next();
    System.out.println(next);
}

奇怪的是,当我遍历 HashSet 时,这些值与我认为放入其中的值不同:

在添加到 Double HashSet 之前来自 println 的结果示例:

codespot.com
googleapis.com
googlecode.com
pagespeedmobilizer.com
withgoogle.com
herokuapp.com
herokussl.com
iki.fi
biz.at
info.at
co.pl
azurewebsites.net

结果示例迭代通过:

eurovision
ventures
ads
ninja
claims
pharmacy
exchange
trust
بھارت
epson

看起来有些 TLD 在句点之前被截断了,有些根本就没有出现在哈希集中。

有人知道我在这里做错了什么吗?关于带字符串的哈希集或从文件中读取是否有一些特殊规则或边缘情况?我只是一个有基本错字的菜鸟吗?

要么有第三个 Set<String> 通过 getDoubleTLD-S-Set 返回,要么 getter

Set<String> getDoubleTLDSet(){ //getDoubleTLD-S-Set ??
    return singleTLDSet;
}

returns 单一顶级域名集。

否则代码没问题。

(调用 StringEscapeUtils.escapeJava 有什么意义?我不会仅仅为了存储字符串而这样做。)