如何检查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();
}
}
}
答案 0 :(得分:0)
对EditText中的文本和文件中的单词i进行排序。比较这两个字符串。
String textFromEditText= "zxbc";
String wordFromFile="cxbz";
char a[] = textFromEditText.toCharArray();
char c[] = wordFromFile.toCharArray();
Arrays.sort(a);
Arrays.sort(c);
System.out.println(String.valueOf(a).equalsIgnoreCase(String.valueOf(c)));
答案 1 :(得分:0)
使用String.contains()
。
String name="what do you know about me";
if(name.contains("do you know"))
{
// do stuff
}
您可以将额外的属性与contains()
一起使用,例如trim()
和equalsIgnoreCase()
。