formatCNcharacters static method

String formatCNcharacters(
  1. String str, {
  2. int len = 16,
  3. String etc = '…',
})

截取字符串,中文算两个字符,英文算一个字符

Implementation

static String formatCNcharacters(String str, {int len = 16, String etc = '…'}) {
  for (int i = 0, subLen = 0; i < str.length; i++) {
    subLen += str.codeUnitAt(i) >= 0 && str.codeUnitAt(i) <= 255 ? 1 : 2;
    if (subLen >= len) return str.substring(0, i + 1) + (i < str.length - 1 ? etc : '');
  }
  return str.substring(0); //返回原字符串的副本
}