我正在开发一个程序..在android中,在edittext中输入名称,并在其中搜索元音。假设在名称中存在Roshan元音,即o&a,并且必须从中显示第一个元音,但我得到了显示第一个元音的代码,并且程序运行正常。.但是该程序仅在存在多个元音时才显示元音一个元音..如果只有一个元音未显示字母..请检查代码,如果发现任何错误请帮助。

public char gReport(View V)
            {
                et1 = (EditText) findViewById (R.id.editText1);
                et2 = (EditText) findViewById (R.id.editText2);
                et3 = (EditText) findViewById (R.id.editText3);
                TextView tv1 = (TextView) findViewById (R.id.textView1);


                String str = et1.getText().toString();


                int a=str.indexOf('a');
                int b=str.indexOf('e');
                int c=str.indexOf('i');
                int d=str.indexOf('o');
                int e=str.indexOf('u');

                if(a!=-1 && a<(b&c&d&e))
                {
                    tv1.setText("a");
                }
                else if(b!=-1 && b<(a&c&d&e))
                    {

                    tv1.setText("e");

                    }
                else if(c!=-1 && c<(a&b&d&e))
                {

                tv1.setText("i");

                }
                else if(d!=-1 && d<(a&c&b&e))
                {

                tv1.setText("o");

                }
                else if(e!=-1 && e<(a&c&d&b))
                {

                tv1.setText("u");

                }
                return 0;



    }

最佳答案

在第二个if条件下,我假设您要检查当前元音索引是否小于所有其他元音索引。您无法按照自己的方式来做。您必须为每种情况明确编写:

if((a!=-1) && (a<b) && (a<c) && (a<d) && (a<e))


但是,这将不起作用,因为您的索引将大于错误索引(-1)。因此,您必须包括一个临时整数值以检查索引的最小值。尝试这个:

int min = str.length();
if(a!=-1 && a<min) {
    tv1.setText("a");
    min=a;
}
if(b!=-1 && b<min) {
    tv1.setText("e");
    min=b;
}
if(c!=-1 && c<min) {
    tv1.setText("i");
    min=c;
}
if(d!=-1 && d<min) {
    tv1.setText("o");
    min=d;
}
if(e!=-1 && e<min) {
    tv1.setText("u");
    min=e;
}

08-26 01:22