我在 Scala 中的过滤器循环不起作用?

My filter loop in scala doesn't work?

for(i <- data){
        if(i != 'a' || i != 'e' || i != 'i' || i != 'o' || i != 'u'){
            myArray(i) = i;
            println(myArray(i));
        }
    }

Data是传入的字符串,myArray变量是char数组。 Why is it that when the char selected is in-putted into myArray it can be a vowel?请帮忙,谢谢。

您需要像这样更改您的 if 条件:

if(i != 'a' && i != 'e' && i != 'i' && i != 'o' && i != 'u')

你读它好像 i 不是 a 也不是 e 和 other 只是它不是元音。也不要使用 i 这将是您的数据的值作为数组的索引。在 for 循环之外使用变量,例如:

var index = 0

并使用这个索引变量并递增它。

我认为更实用的方法是:

 def filterVowels(data: Array[Char]): Array[Char] = {
    data filter (isVowel);
  }
  val isVowel = Set('a', 'e', 'i', 'o', 'u')