检查文件中的单词是否与EditText中的随机字符串匹配

时间:2017-05-07 12:43:15

标签: java android string file android-edittext

如何检查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();
        }
    }
}

2 个答案:

答案 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()