Dart编码:聊聊字符串使用技巧和规范

1,172 阅读2分钟

前言

字符串作为开发中最常见的使用类型,遵循一定的规范,能有效提高代码的可读性。下面推荐部分在 Dart 中使用字符串的实践规范。

字符串连接

如果你有两个字面量字符串(不是变量,是放在引号中的字符串),不需要使用 + 来连接它们。只需要将它们挨着在一起就可以了,这种方式适合不能放到一行的长字符串的创建。

///推荐
String f = 'aaa''bbb' //只适用于常量不适用与变量
///不推荐使用 + 号
String f = 'aaa' + 'bbb'

字符串定义

使用三个单引号或三个双引号 创建多行字符串,保留内在格式,如换行和缩进等,里面写什么输出就是什么

String f = '''
    my name is rex
        nice to meet you!
'''

普通定义,使用单引号或双引号

String a = 'aaa';
String b = "bbb";

使用 r 创建原始 raw 字符串转义字符等特殊字符会输出出来,而不会自动被转义

String f = r'Hello \n World';

使用插值的形式来组合字符串和值

避免使用 + 将字面字符串与变量值进行关联构建。使用 $,${}标识进行连接构建。

void setName(Person person){
    String f = 'my name ${person.name}'
}

void setName(String name){
    String e = 'my name is $name'
}

转换大小写

业务比较中常常忽略大小写只进行内容比较

String f = "aaaBBBccc";
//大写转小写
f.toLowerCase();
//小写转大写
f.toUpperCase();

去除空格

去除空格也是开发中常用的用法

String f = " aaabbb "
//去除左右两边空格
f.trim();
//去除左边空格
f.trimLeft();
//去除右边空格
f.trimRight();

补齐长度,剩余位使用指定字符串替换

String f = "111";
//剩余3个位,左边默认使用”“补齐
f.padLeft(6); //"   111"
//剩余3个位,右边使用”c“补齐
f.padRight(6,"c"); //"111ccc"
//剩余3个位 每个位指定使用"dd" 替换后总长度不是6
f.padRight(6,"cc"); //"111cccccc"
//如果指定长度小于原字符串长度 返回原字符串
f.padLeft(2); //"111"

金额转字符串,保留两位小数

// int 单位为分
extension PDIntX on int {
  /// 金额转字符串 保留两位小数
  /// 100 => 1.00
  String get moneyString => (this.toDouble() / 100).toStringAsFixed(2);

  /// 金额转字符串 最多展示两位小数 末尾的0会舍去
  /// 100 => 1
  String get moneyStrSubZero {
    var str = this.moneyString;
    if (str.endsWith('.00')) {
      return str.substring(0, str.length - 3);
    }
    if (str.endsWith('0')) {
      return str.substring(0, str.length - 1);
    }
    return str;
  }
}