首页 > 解决方案 > Dart:如何从字符串中获取字符,并进行比较

问题描述

我正在尝试从字符串中获取字符,并进行比较:

String aStr = ReadString(inputs);
String bStr = ReadString(inputs);

int diff = 0;
for (int i = 0; i < n; i++) {
  if (aStr.codeUnitAt(i) != bStr.codeUnitAt(i)) {
    diff++;
  }
}

但是,我在编译过程中遇到了以下错误:

Unhandled exception:
RangeError (index): Invalid value: Not in range 0..6, inclusive: 7
#0      String.codeUnitAt (dart:core-patch/string_patch.dart:927)
#1      BoomerangDecoration (file:<>/HCPast/bin/hcpast.dart:49:16)
<asynchronous suspension>
#2      main (file:<>/HCPast/bin/hcpast.dart:9:9)
<asynchronous suspension>
#3      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:263)
#4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)

我也试过 charCodeAt,但据说不是 String 的方法。

标签: dart

解决方案


在我仔细检查之后,它已经在编译会话之后了。原因应该是超出字符串末尾的索引。


推荐阅读