比较Dart中从左到右,从右到左的字符串

时间:2012-10-28 17:40:09

标签: split compare dart

我试图检查字符串是否是回文。

示例:

radar = radar = TRUE

iwant = tnawi = FALSE

任何例子都会受到赞赏。

3 个答案:

答案 0 :(得分:1)

听起来你想检查一个单词是否是回文。有两种方法可以做到这一点。您可以检查单词是否与其自身相反,或者您可以根据它们应该匹配的位置检查字符。

Dart的String还没有reverse()方法,所以第二种方法现在可能是最简单的方法:

bool isPanlindrome(String word) {
  for (int i = 0; i < word.length ~/ 2; i++) {
    if (word[i] != word[word.length - i - 1]) return false;
  }
  return true;
}

答案 1 :(得分:0)

正如大卫所说(但不是在达特?),你可以写:

bool isPanlindrome(String s) {
  return s == reverse(s);
}
String reverse(String s) {
  // null or empty
  if (s == null|| s.length == 0)
    return s;
  List<int> charCodes = new List<int>();
  for (int i = s.length-1; i>= 0; i-- )
    charCodes.addLast(s.charCodeAt(i)) ;
  return new String.fromCharCodes(charCodes);
}

查看有关reverse()

的近期帖子

答案 2 :(得分:0)

String reverse(String s) {
  var chars = s.splitChars();
  var len   = s.length - 1;
  var i     = 0;

  while (i < len) {
    var tmp = chars[i];
    chars[i] = chars[len];
    chars[len] = tmp;
    i++;
    len--;
  }

  return Strings.concatAll(chars);
}

void main() {
  var s = "dog";
  print(s);
  print(reverse(s));
}