首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个程序不加区别地将成员添加到集合memsSet中?

为什么这个程序不加区别地将成员添加到集合memsSet中?
EN

Stack Overflow用户
提问于 2014-07-26 06:08:02
回答 2查看 37关注 0票数 0

我搞不懂为什么围绕pacs.length构建的第二个for循环不断向集合中添加元素,即使这些元素不包含要在mems.contains中搜索的变量。我不能让代码不随意添加成员到集合中。显然,我看不出我错在哪里。

代码语言:javascript
复制
import java.io.*;
import java.util.*;

public class Trubl
{
public static void main( String args[] ) throws Exception
{
    BufferedReader pacsFile = new BufferedReader( new FileReader( "pacs.txt" ) );
    BufferedReader membersFile = new BufferedReader( new FileReader( "members.txt" ) );

    TreeSet<String> memsSet = new TreeSet<String>();
    TreeMap<String, TreeSet<String>> pac2mems = new TreeMap<String, TreeSet<String>>();

    String[] pacs = new String [9];

    int cnt = 0;

    for(int i = 0; i < pacs.length; i++)
    {
        String pac = pacsFile.readLine();

        pacs[i] = pac;
    }

    pacsFile.close();

    Arrays.sort(pacs);

    int j = 0;

    while (membersFile.ready())
    {
        String mems = membersFile.readLine();
        System.out.println(mems);
        String[] splitter = mems.split("\\s+");

        for (int i = 1; i < pacs.length; i++)
        {
            System.out.println(pacs[i]);
            if (mems.contains(pacs[i]))
            {
                memsSet.add(splitter[0]);
            }
            System.out.println(memsSet);

        }



        pac2mems.put(pacs[j], memsSet);
        j++;
    }

    membersFile.close();

    for (cnt = 0; cnt < pac2mems.size(); cnt++)
        System.out.println(pacs[cnt] + " " + pac2mems.get(pacs[cnt]));

} // END MAIN

}

EN

回答 2

Stack Overflow用户

发布于 2014-07-26 06:14:49

代码语言:javascript
复制
if (mems.contains(pacs[i]))
{
  memsSet.add(splitter[0]);
}

如果mems包含该字符串,则会将其添加到memsSet。这是你想要的吗?

票数 0
EN

Stack Overflow用户

发布于 2014-07-26 07:17:27

如果您提供了一个正在发生的事情的示例,即示例输入文件和结果输出,那么回答起来会容易得多。

不过,我还是要大胆猜测一下。如果你的"pacsFile“中有一个空行,那么就会有一个空字符串的元素,在这种情况下,总是会有一个mems.contains(pacs[i])为真的i (一个字符串总是contains空字符串)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24965224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档