2016-11-29 120 views
1

嗨我需要一些帮助来创建一个函数,可以用第一个字母和另一个EditText的第一个元音填充EditText查找字符串中的第一个字母和第一个元音java

事情是这样的:
的EditText = JHON
输出= JO

我有这个,但仍无法正常工作;

public class MainActivity extends Activity { 

    private EditText Result; 
    private EditText MyName; 
    private EditText showResult; 
    private String MyVowel; 
    private String cadena, PartOne; 
    private int count; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Result = (TextView) findViewById(R.id.showResult); 
     MyName= (EditText)findViewById(R.id.NameInput); 
     getInfo = (Button)findViewById(R.id.getInfoButton); 
     getInfo.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       String inputText = myName.getText().toString(); 
       String partOne= inputText.substring(0,1); 

       for(int i=0;i <inputText.length();i++){ 
        if((inputText.charAt(i) == 'a') || 
          (inputText.charAt(i) == 'e') || 
          (inputText.charAt(i) == 'i') || 
          (inputText.charAt(i) == 'o') || 
          (inputText.charAt(i) == 'u')) { 

         System.out.println(cadena); 
        } 
       } 
       showResult.setText(PartOne); 
      } 
     }); 

    } 
} 
+1

它是否显示“Ju”?一旦找到匹配项,您需要跳出循环 –

+0

您在'onCreate'中初始化了变量'Result'而不是'onClick'方法所需的'showResult' – flakes

+0

方法split可能有帮助。你可以用一个空格来分割你的字符串,比如'String [] splitted = inputText.split(“\\ s +”);'\\ s +是空格。另一种可能的方法是:'StringUtils.split(inputText);'然后你有两个字符串,你可以创建它的一个子字符串。 – Opiatefuchs

回答

1

你没有说你的问题是什么。如果你是停留在逻辑看下面的代码,

private String getShortForm(String inputText){ 
    List<Character> vowels = new ArrayList<Character>() { 
     { 
      add('a'); 
      add('e'); 
      add('i'); 
      add('o'); 
      add('u'); 
      add('A'); 
      add('E'); 
      add('I'); 
      add('O'); 
      add('U'); 
     } 
    }; 
    String partOne = inputText.substring(0, 1); 
    for (int i = 0; i < inputText.length(); i++) { 
     char c = inputText.charAt(i); 
     if(vowels.contains(c)){ 
      partOne += c; 
      break; 
     } 
    } 

    return partOne.toUpperCase(); 
} 

使用内部onClick

Result.setText(getShortForm(inputText)); 
0

这里的解决方案

public class MainActivity extends AppCompatActivity{ 
    private TextView Result; 
    private EditText MyName; 
    private Button getInfo; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Result = (TextView) findViewById(R.id.showResult); 
     MyName= (EditText)findViewById(txtText); 
     getInfo = (Button)findViewById(btnSpeak); 
     getInfo.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       String inputText = MyName.getText().toString(); 
       String partOne= inputText.substring(0,1); 
       Log.e("inputText: "+inputText, "part one: "+partOne); 
       String vowels = ""; 
       for(int i=0;i <inputText.length();i++){ 
        if((inputText.charAt(i) == 'a') || 
          (inputText.charAt(i) == 'e') || 
          (inputText.charAt(i) == 'i') || 
          (inputText.charAt(i) == 'o') || 
          (inputText.charAt(i) == 'u') || 
          (inputText.charAt(i) == 'A') || 
          (inputText.charAt(i) == 'E') || 
          (inputText.charAt(i) == 'I') || 
          (inputText.charAt(i) == 'O') || 
          (inputText.charAt(i) == 'U')){ 

         vowels = vowels+inputText.charAt(i); 
        } 
       } 

       Log.e("inputText: "+inputText, "vowelsFinal: "+vowels); 

       String partTwo = vowels.substring(0,1); 
       Log.e("inputText: "+inputText, "partTwo: "+partTwo); 

       String finalString = partOne+partTwo; 
       Log.e("inputText: "+inputText, "finalString: "+finalString); 

       Result.setText(finalString);  
      } 
     }); 
    } 
} 

希望这能解决你的问题:)

+0

如果您的问题已解决,那么只需单击(✓check)标记即可。 – MashukKhan

相关问题