2015-04-16 71 views
-1

目标:为什么'包含'不起作用?或者我做错了?

  1. 检查,如果用户输入一个字母
  2. 检查它是否是一个元音或辅音
  3. 检查,如果有一个字符串

包含重复的字母不返回任何东西或我正在使用它错误

Scanner out = new Scanner(System.in); 
    System.out.print("Please insert a text: "); 

    String[] vowels = {"a", "e", "i", "o", "u"}; 
    String userInput = out.nextLine(); 
    char[] charUserInput = userInput.toCharArray(); 
    String temp = ""; 
    String temp1 = ""; 
    for (int i = 0; i <= charUserInput.length -1; i++){ 
     if (Character.isLetter(charUserInput[i])){ 
      if (Character.toString(charUserInput[i]).equalsIgnoreCase(vowels[0]) || (Character.toString(charUserInput[i]).equalsIgnoreCase(vowels[1]) || 
        (Character.toString(charUserInput[i]).equalsIgnoreCase(vowels[2]) || (Character.toString(charUserInput[i]).equalsIgnoreCase(vowels[3]) || 
          (Character.toString(charUserInput[i]).equalsIgnoreCase(vowels[4])))))){ 
        if (!Character.toString(charUserInput[i]).contains(temp)){ 
         temp += Character.toString(charUserInput[i]); 
        } 
      }else{ 
       if (!Character.toString(charUserInput[i]).contains(temp1)){ 
        temp1 += Character.toString(charUserInput[i]); 
       } 

      } 
     } 
    } 
    System.out.println(temp); 
    System.out.println(temp1); 
    out.close(); 
+0

你得到什么错误? – Ajit

+0

它只返回空白。没有别的.. – user3323654

+0

temp1只能初始化为“”。 – SpaceCowboy

回答

2

看起来像你反转条件:使用

temp.contains(Character.toString(charUserInput[i])) 

,而不是

Character.toString(charUserInput[i]).contains(temp) 
+0

哦,它现在正在工作!反过来如何是错的?你能解释一下吗?谢谢 – user3323654

+1

@ user3323654 as [String docs](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#contains(java.lang.CharSequence))state,“Returns当且仅当** this **字符串包含**指定的char值序列**时,才返回true。这意味着该方法检查参数是否包含在字符串中,而不是相反。 –

相关问题