我正在开发一个程序..在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;
}