【发布时间】:2017-10-05 12:12:33
【问题描述】:
如何检查来自 EditText 字符串的随机字符集是否与文件中的某个单词匹配?
例如:
EditText 输入:TINARSE
可以匹配 NASTIER、STAINER 等单词。
假设文件中的一个单词用 i 表示。
我知道如何从文件中读取字符串只是无法弄清楚如何使用 IF 语句将其与随机字符输入相匹配。
注意:字符串长度应与EditText长度一致
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
anagram=(EditText)findViewById(R.id.inputtext);
submit=(Button)findViewById(R.id.submit);
viewall=(TextView)findViewById(R.id.list);
viewall.setMovementMethod(new ScrollingMovementMethod());
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String a =anagram.getText().toString();
checkword("cswfifteen.txt",a);
}
});
}
private void checkword(String Filename, String a) {
StringBuilder builder = null;
BufferedReader reader = null;
ArrayList<String> words= new ArrayList<>();
try {
builder = new StringBuilder();
reader = new BufferedReader(new InputStreamReader(
getAssets().open(Filename)
));
String Line;
while ((Line = reader.readLine()) != null) {
builder.append(Line).append("\n");
}
String[] dict = builder.toString().split("\n");
for (String i : dict) {
char[] b = i.toString().toCharArray();
Arrays.sort(b);
char[] c=a.replace("?","").toCharArray();
Arrays.sort(c);
if (String.valueOf(b).contains(String.valueOf(c)) && b.length==a.length()){
words.add(i);}
}
Collections.sort(words);
StringBuilder result = new StringBuilder();
for (String i : words)
{
result.append(i + "\n");
}
viewall.setText(result.toString());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
标签: java android string file android-edittext