Java Android正在搜索字符串中的字符

Java Android正在搜索字符串中的字符,java,android,android-edittext,Java,Android,Android Edittext,我正在制定一个计划。。在android中,在edittext中输入名称并在其中搜索元音。假设名义上存在Roshan元音,即o&a和必须显示的第一个元音,我得到了显示第一个元音的代码,程序运行良好。。但是,只有当有多个元音时,程序才会显示元音。如果只有一个元音,则该字母不会显示。。请检查代码,如果发现任何错误,请帮助 public char gReport(View V) { et1 = (EditText) findViewById (R

我正在制定一个计划。。在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;



    }
public char gReport(视图五)
{
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);
字符串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');
如果(a!=-1&&a您可以尝试以下方法:

在java中,有一个方法用于搜索给定字符串中的特定字符串

YourString.contains("CheckString");
要检查第一个元音,只需从数组中找到最小数,然后从主字符串中获取子字符串

char[] a = {'3', '5', '1', '4', '2'};

List b = Arrays.asList(ArrayUtils.toObject(a));

System.out.println(Collections.min(b));
希望有帮助!!

你可以试试这个::

在java中,有一个方法用于搜索给定字符串中的特定字符串

YourString.contains("CheckString");
要检查第一个元音,只需从数组中找到最小数,然后从主字符串中获取子字符串

char[] a = {'3', '5', '1', '4', '2'};

List b = Arrays.asList(ArrayUtils.toObject(a));

System.out.println(Collections.min(b));

希望能有帮助!!

找到元音的第一次出现

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

       outer : for (i = 0; i < str.length(); i++)
        {
        switch(s.charAt(i)) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        tv1.setText(s.charAt(i));
        break outer;
        }
String str=et1.getText().toString();
外部:用于(i=0;i
或者像这样

for (i = 0; i < str.length(); i++)
            {
if(StringUtils.isVowel(str,i)){
 tv1.setText(s.charAt(i));
            break;
}
}
for(i=0;i
查找元音的首次出现

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

       outer : for (i = 0; i < str.length(); i++)
        {
        switch(s.charAt(i)) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        tv1.setText(s.charAt(i));
        break outer;
        }
String str=et1.getText().toString();
外部:用于(i=0;i
或者像这样

for (i = 0; i < str.length(); i++)
            {
if(StringUtils.isVowel(str,i)){
 tv1.setText(s.charAt(i));
            break;
}
}
for(i=0;i
在您的第二个
if
条件中,我假设您想检查当前元音索引是否比所有其他元音索引都小。您不能以您编写的方式执行此操作。您必须针对每种情况显式编写:

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

if((a!=-1)和&(a在第二个
if
条件中,我假设您想检查当前元音索引是否比所有其他元音索引都小。您不能以您编写的方式完成。您必须针对每种情况显式编写:

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

如果((a!=-1)&&(a您的逻辑有缺陷

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

如果(a!=-1&&a您的逻辑有缺陷

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


if(a!=-1&&a为什么要显示第一个来的元音的aSeems副本…所以我这样写,
&
是按位的,你可能想要
b+c+d
。所以你想确保当前元音的位置是最小的整数。这就是你的问题为什么要使用f的aSeems副本第一个元音必须显示…所以我这样写,
&
是按位的,你可能需要
b+c+d
。所以你想确保当前元音的位置是最小的整数。这是你的问题,但我想显示字符串中的第一个元音你能详细说明你的方法吗…)在这个方法中,我们将获取所有索引的最小值。因此,我们可以在字符串中获取最小索引处的字符,并在textview中将其设置为文本。但是我想显示字符串中的第一个元音。您可以详细说明您的方法吗…:)在这种方法中,我们将获得所有索引的最小值。因此,我们可以在字符串中获得最小索引处的字符,并在textview中将其设置为文本。您需要更改if语句
e!=-1&&aThanks Nitro中的所有比较,以获得答复让我检查谢谢@ScottHelme,我以为我已经掌握了c/p技术;)@NitroNbg没有问题:)您需要更改if语句中的所有比较
e!=-1&&aThanks Nitro for reply让我检查一下谢谢@scottelme,我以为我已经掌握了c/p技巧;)@NitroNbg没问题:)这两个语句都找不到字符串中的第一个元音,而是最后一个。您需要反转for循环中的计数器:
for(i=str.length();i>0;i--)
@ScottHelme您是否注意到
break;
语句..?它将找到第一个元音,然后退出循环..)
是否会中断
只需退出
开关
?@ScottHelme我现在明白你的意思了…更新了第一个大小写..谢谢它们中的任何一个都会找到字符串中的第一个元音,而不是最后一个。你需要反转for循环中的计数器:
for(I=str.length();I>0;I--)
@scottelme您是否注意到
break;
语句..?它将找到第一个元音,然后退出循环...)
会不会中断
只需退出
开关
?@ScottHelme我现在明白你的意思了…更新了第一个案例谢谢Hanks Scott…你的解释帮我知道了我的错误谢谢Hanks Scott…你的解释帮我知道了我的错误谢谢