我在原始文件夹中有一个包含超过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中没有任何内容被打印出来。我认为如果条件存在问题。
答案 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;
}
}