将hashset与android中raw文件夹中的文本文件进行比较

时间:2013-09-26 13:26:29

标签: android file-io stringbuilder hashset

我在原始文件夹中有一个包含超过80,000个单词的hashset和一个文本文件。 我想比较hashset的每个元素和文本文件的单词。但是我遇到了一个问题。

public class MainActivity extends Activity
{ 
@Override
protected void onCreate(Bundle savedInstanceState)  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    lays=(LinearLayout)findViewById(R.id.lays);

TextView tvv=new TextView(MainActivity.this);
                try {
                    tvv.setText(onCompare(MainActivity.this, sett));
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                lays.addView(tvv); }

我比较的方法是:onCompare 文件是:data.txt

    private String onCompare(Context context, HashSet set) throws IOException
{
    InputStream is = context.getResources().openRawResource(R.raw.data);
    String ch=new String();
     StringBuilder text = new StringBuilder();
    Iterator<String> it=set.iterator();
    String s;
    while(it.hasNext())
    {
        BufferedReader br=new BufferedReader(new InputStreamReader(is));

         s=it.next().toString();

        while((ch=br.readLine())!= null)
    {
        if(s.equals(ch))
        {
        text.append(ch);
        text.append('\n');
            break;
        }
    else continue;
    }


}
    return text.toString();
}

我在onCreate方法中将这个StringBuilder对象打印在名为tvv的textview中。但是在textview中没有任何内容被打印出来。我认为如果条件存在问题。

1 个答案:

答案 0 :(得分:0)

当然,您的情况似乎有问题。尝试将if(s.equals(ch))替换为if(s.contains(ch))

while((ch = br.readLine())!= null) {
    if(s.contains(ch)) {
        text.append(ch);
        text.append('\n');
            break;
    }
}