Flutter - Dart - String

2024-07-04  本文已影响0人  rainy66

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


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';
}));



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'。

上一篇 下一篇

猜你喜欢

热点阅读