简单的 removeVowel 函数不改变输入字符串

Simple removeVowel function not changing input string

我正在尝试在 dart 中创建一个简单的函数来测试应该从输入字符串中删除所有元音,但我的代码似乎从未更改原始输入中的 。谁能帮我解决这个问题?谢谢

  String removeVowel( str) {
  var toReturn = "";
  for (var i = 0; i < str.length; i++) {

    var temp = str.substring(i,i+1);

    if (temp != 'a' || temp != 'e' || temp != 'i' || temp != 'o' || temp!= 'u')
    {
      toReturn = toReturn + temp;
    }
  }
  return toReturn;
}

以及我的测试结果:

00:02 +0 -1: dog --> dg [E]
  Expected: 'dg'
    Actual: 'dog'
     Which: is different.
            Expected: dg
              Actual: dog
                       ^
             Differ at offset 1

第一次尝试不错,但有一种更简单的方法可以做到这一点。 replaceAll 应该可以解决问题

String removeVolwels(String s){
  return s.replaceAll(RegExp('[aeiou]'),'');
}

https://api.flutter.dev/flutter/dart-core/String/replaceAll.html

要使您的代码正常工作,您应该将 || 更改为 &&

String removeVowel( str) {
  var toReturn = "";
  for (var i = 0; i < str.length; i++) {

    var temp = str.substring(i,i+1);

    if (temp != 'a' && temp != 'e' && temp != 'i' && temp != 'o' && temp!= 'u')
    {
      toReturn = toReturn + temp;
    }
  }
  return toReturn;
}