美文网首页
Flutter - Dart - String

Flutter - Dart - String

作者: rainy66 | 来源:发表于2024-07-04 17:42 被阅读0次

    String的基本使用

    字符串定义

    • 使用单引号或者双引号
    
     String str1 = 'maybe1';
     String str2 = "maybe2"; 
     //使用三个单引号或三个双引号,创建多行字符串,保留内在格式,如换行和缩进,里面些什么输出就是什么
     String str3 = ''' maybe3
               maybeuuhiop
           yuip
     ''';
      String str4 = """maybe4
      tyuiuhoijuuvyiuiojop
           yuipoiuihj
      
      """;
      print(str1);//maybe1
      print(str2);//maybe2
      print(str3);
    /*maybe3
               maybeuuhiop
           yuip
    */
      print(str4);
       /*
       maybe4
      tyuiuhoijuuvyiuiojop
           yuipoiuihj
       */
       
    
    

    字符串常用属性

    
     String str5 = '123';
     String str6 = '';
     print(str5.length); //3 字符串长度
     print(str5.isEmpty);// flase 是否为空
     print(str6.isNotEmpty); //flase 是否不为空
     
    
    
    • 字符串连接
    
    String str7 = '1234';
    String str8 = 'abc';
    String str9 = str7 + str8; //使用+连接
    String str10 = 'aaa' 'ccc'; //使用相邻空格符号连接,必须是两个字符串,不能是变量
    print(str9); //1234abc
    print(str10);//aaaccc
    
    
    
    • 字符串模板,使用${}将一个字符串变量嵌入另一个字符串内
    String str11 = 'aa';
    String str12 = 'bb${str11}bb';
    print(str12);//bbaabb
    String str13 = 'bb${str11.toUpperCase()}bb';
    print(str13); //bbAAbb
    
    
    
    • 字符串与数字之间的转换
    int int1 = int.parse('33');
    print(int1);//33
    
    double d1 = double.parse('3.14');
    print(d1); //3.14
    
    print(33.toString()); //33
    print(3.34.toString()); //3.34
    print(5678.1267.toStringAsFixed(3)); //5678.127  保留精度,会四色五入
    
    
    
    • 字符串切割
    
    String str14 = 'xyz67823';
    print(str14.substring(0,2));//xy  从0 -2 切割字符串得到新的字符串
    print(str14.substring(3));  //67823 从指定index到末尾
    
    String str15 = 'a,b,c,d,e,,,z,';
    List list15 = str15.split(','); //只用’,‘分割,返回一个数组
    print(list15);//[a, b, c, d, e, , , z, ]
    
    String str16 = 'a b,c,d';
    String str17 = str16.splitMapJoin(
      ",",
      onMatch:(Match match){
          return 'b';
      },onNonMatch: (nonMatch) {
          return 'z';
      } //查询“,”,用onMatch的返回值替换“,”用onNonMatch的返回值替换其他
    );
    print(str17); //zbzbz
    
    
    
    • 字符串判断 是否包含或以 xxx开始结束等等
    String str18 = 'a1123acv';
    print(str18.startsWith('a'));//true
    print(str18.startsWith('aa',1)); // false 从index=1 开始查找
    print(str18.endsWith('c')); //false
    print(str18.contains('ab')); //flase
    print(str18.contains('ac',3)); // true从idnex =3 开始查找
    
    
    
    • 字符串替换
    String str19 = 'tyfguihojpk6789';
    print(str19.replaceAll('f', 'xyz')); //tyxyzguihojpk6789 替换全部符合条件
    print(str19.replaceFirst('ui', 'maybe')); //tyfgmaybehojpk6789  只替换第一个符合条件的
    print(str19.replaceFirst('fg', 'maybe11',2)); //tymaybe11uihojpk6789 在index=2 开始替换第一个符合条件的
    print(str19.replaceRange(1, 5, 'xxx')); //txxxihojpk6789  范围内替换 1 - 5  含头不含尾
    print(str19.replaceAllMapped('k', (match){ //tyfguihojpxyz6789  用方法返回值替换指定的字符串所有的
    return 'xyz';
     }  
    )); 
    
    print(str19.replaceFirstMapped('o', (match) { //tyfguihxxxxjpk6789  用方法返回值替换指定的字符串 只替换第一个符合条件的
    return 'xxxx';
    }));
    
    
    
    • 字符串查找 查找元素所在的index
    
    String str20 = 'abcdefgab';
    print(str20.indexOf('ab')); //0  第一个符合条件的index
    print(str20.indexOf('ab',2));//7  从index = 2 开始往后找 找不到则返回-1
    print(str20.lastIndexOf('fg')); //5   从后往前找,返回第一个符合条件的index
    print(str20.lastIndexOf('fg',1)); //-1 从后往前找,从index = 1开始找,找不到返回-1
    print(str20.lastIndexOf('fg',8));//5 //从后往前找,从index = 5 开始找,找到了则返回index
    
    
    
    • 转化为大小写
    String str21 = 'aabbCCC';
    print(str21.toLowerCase()); //aabbccc 小写
    print(str21.toUpperCase()); //AABBCCC 大写
    
    
    
    • 去除空格
     String str22 = '  122   cc  zz  ';
     print(str22.trim());//去除左右两边的空格  
     print(str22.trimRight()); //去除右边的空格  
     print(str22.trimLeft()); // 去除左边的空格  
     
    
    
    • 补齐长度 剩余位使用指定字符串替换
    String str23 = '123';
    print(str23.padLeft(6)); //   123 剩余3个位,默认使用''补齐
    print(str23.padRight(7,'a'));//123aaaa  剩余4个位,指定使用a补齐
    print(str23.padRight(7,'zz'));//123zzzzzzzz  剩余4个位,指定使用 zz补齐 替换后长度不是7  补齐了4个zz
    print(str23.padLeft(2,'b'));//123  如果指定长度小于原字符串长度,返回原字符串
    
    
    
    • 字符串先后比较
    String str24 = 'abc123';
    print(str24.compareTo('aaa'));  //1  a > b
    print(str24.compareTo('abc123'));//0  a = b
    print(str24.compareTo('add111'));//-1 a < b
    
    字符串的比较是基于字符的 ASCII值进行的。在上述代码中,str24.compareTo('aaa')返回1,表示str24大于'aaa',因为'c'的 ASCII 值大于'a'。同样,str24.compareTo('abc123')返回0,表示str24等于'abc123',因为它们的字符序列完全相同。而str24.compareTo('add111')返回-1,表示str24小于'add111',因为'a'的 ASCII 值小于'd'。
    
    

    相关文章

      网友评论

          本文标题:Flutter - Dart - String

          本文链接:https://www.haomeiwen.com/subject/cqtofjtx.html