Dart?String字符串的常用方法有哪些


这篇文章主要介绍了DartString字符串的常用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇DartString字符串的常用方法有哪些文章都会有所收获,下面我们一起来看看吧。

Flutter中字符串的一些常用方法

1 length :返回字符串的长度。

length 是一个返回整数类型的方法,用于获取一个字符串的长度,例如:

Stringstr="HelloWorld!";intlength=str.length;print(length);//输出:12

在这个例子中, length 的值为12,因为这个字符串有12个字符。

2 isEmpty :判断字符串是否为空。

isEmpty 是一个返回布尔值的方法,用于判断一个字符串是否为空,例如:

Stringstr="";boolisEmpty=str.isEmpty;print(isEmpty);//输出:true

在这个例子中, isEmpty 的值为true,因为这个字符串是空的。如果字符串不为空,则 isEmpty 的值为false。

isNotEmpty 是一个返回布尔值的方法,与 isEmpty 相反,用于判断一个字符串是否不为空,例如:

Stringstr="Hello";boolisNotEmpty=str.isNotEmpty;print(isNotEmpty);//输出:true

在这个例子中, isNotEmpty 的值为true,因为这个字符串不为空。如果字符串为空,则 isNotEmpty 的值为false。

3 toUpperCase() :将字符串中所有的小写字母转换为大写字母。

toUpperCase() 是一个方法,用于将一个字符串中所有的小写字母转换为大写字母,例如:

Stringstr="HelloWorld!";StringupperCaseStr=str.toUpperCase();print(upperCaseStr);//输出:HELLOWORLD!

在这个例子中, toUpperCase() 方法将原字符串中所有的小写字母转换为大写字母,返回一个新的字符串 HELLO WORLD! 。原字符串 str 的值并没有变化。

4 toLowerCase() :将字符串中所有的大写字母转换为小写字母。

用于将一个字符串中所有的大写字母转换为小写字母,例如:

Stringstr="HelloWorld!";StringlowerCaseStr=str.toLowerCase();print(lowerCaseStr);//输出:helloworld!

在这个例子中, toLowerCase() 方法将原字符串中所有的大写字母转换为小写字母,返回一个新的字符串 hello world! 。原字符串 str 的值并没有变化。

5 startsWith(pattern) :判断字符串是否以指定的模式(pattern)开头。

用于判断一个字符串是否以指定的模式(pattern)开头,返回一个布尔值。例如:

Stringstr="HelloWorld!";boolstartsWithHello=str.startsWith("Hello");print(startsWithHello);//输出:true

在这个例子中, startsWith("Hello") 方法判断字符串 str 是否以 "Hello" 开头,返回一个布尔值 true 。

6 endsWith(pattern) :判断字符串是否以指定的模式(pattern)结尾。

用于判断一个字符串是否以指定的模式(pattern)结尾,返回一个布尔值。例如:

Stringstr="HelloWorld!";boolendsWithWorld=str.endsWith("World!");print(endsWithWorld);//输出:true

在这个例子中, endsWith("World!") 方法判断字符串 str 是否以 "World!" 结尾,返回一个布尔值 true 。

7 contains(pattern) :判断字符串是否包含指定的模式(pattern)。

返回一个布尔值,用于判断一个字符串是否包含指定的模式(pattern),例如:

Stringstr="HelloWorld!";boolcontainsHello=str.contains("Hello");print(containsHello);//输出:true

在这个例子中, contains("Hello") 方法判断字符串 str 是否包含 "Hello" 这个模式,返回一个布尔值 true 。

8 replaceFirst(oldValue, newValue) :将字符串中第一个出现的oldValue替换为newValue。

用于将原字符串中第一个匹配的 oldValue 替换为 newValue ,返回一个新的字符串。例如:

Stringstr="HelloWorld!";StringnewStr=str.replaceFirst("World","Dart");print(newStr);//输出:HelloDart!

在这个例子中, replaceFirst("World", "Dart") 方法将原字符串中第一个匹配的 "World" 替换为 "Dart" ,返回一个新的字符串 "Hello Dart!" 。原字符串 str 的值并没有变化。

9 replaceAll(oldValue, newValue) :将字符串中所有出现的oldValue替换为newValue。

用于将一个字符串中所有的匹配 oldValue 的部分替换为 newValue ,返回一个新的字符串。例如:

Stringstr="HelloWorld!";StringnewStr=str.replaceAll("o","e");print(newStr);//输出:HelleWerld!

在这个例子中, replaceAll("o", "e") 方法将原字符串中所有的匹配 "o" 的部分替换为 "e" ,返回一个新的字符串 "Helle Werld!" 。原字符串 str 的值并没有变化。

10 substring(startIndex, endIndex) :截取字符串的一部分,从startIndex开始到endIndex结束。

用于获取一个字符串中指定范围内的子串,返回一个新的字符串。其中, startIndex 表示子串的起始位置(包括该位置的字符), endIndex 表示子串的结束位置(不包括该位置的字符)。例如:

Stringstr="HelloWorld!";StringsubStr=str.substring(0,5);print(subStr);//输出:Hello

在这个例子中, substring(0, 5) 方法获取字符串 str 中从位置0开始到位置5(不包括位置5)的子串,返回一个新的字符串 "Hello" 。原字符串 str 的值并没有变化。注意, substring 方法包括起始位置,不包括结束位置。如果省略 endIndex 参数,则方法会从 startIndex 一直截取到字符串的末尾。

11 split(separator) :将字符串按照指定的分隔符(separator)拆分成一个字符串数组。

将一个字符串按照指定的分隔符(separator)分割成多个子字符串,返回一个字符串列表。例如:

Stringstr="HelloWorld!";List<String>strList=str.split("");print(strList);//输出:[Hello,World!]

在这个例子中, split(" ") 方法将字符串 str 按照空格分隔成两个子串 "Hello" 和 "World!" ,组成一个字符串列表 [Hello, World!] 返回。注意, split() 方法只能接受一个参数,即分隔符。如果省略 separator 参数,则默认按照空格或制表符( \t )进行分割。

12 trim() :去掉字符串首尾的空格。

用于去掉一个字符串两端的空格(或其他空白字符),返回一个新的字符串。例如:

Stringstr="HelloWorld!";StringnewStr=str.trim();print(newStr);//输出:HelloWorld!

在这个例子中, trim() 方法去掉字符串 str 两端的空格,返回一个新的字符串 "Hello World!" 。原字符串 str 的值并没有变化。

13pareTo(otherString)

比较两个字符串的大小,返回一个整数值,如果当前字符串比otherString小,则返回一个负数,如果当前字符串比otherString大,则返回一个正数,如果当前字符串和otherString相等,则返回0。 例如:

Stringstr1="Hello";Stringstr2="World";intresult=str1pareTo(str2);print(result);//输出:-15

在这个例子中,pareTo(str2) 方法比较字符串 str1 和 str2 的字典序,由于字符串 str1 小于字符串 str2 ,因此返回一个负数 -15 。

14 codeUnitAt

用于获取一个字符串中指定位置的字符的Unicode编码,返回一个整数。其中, index 表示要获取的字符的位置,从0开始。例如:

Stringstr="Hello";intcodeUnit=str.codeUnitAt(1);print(codeUnit);//输出:101,对应字符'e'的Unicode编码。

在这个例子中, codeUnitAt(1) 方法获取字符串 str 中位置为1(即第二个字符)的字符的Unicode编码,即字符 'e' 的Unicode编码 101 (根据ASCII编码表)。

15 indexOf

用于查找一个字符串中是否包含指定的子串。如果包含,则返回该子串在原字符串中第一次出现的位置(从左向右计数,从0开始)。如果不包含,则返回-1。其中, substring 表示要查找的子串, startIndex 表示查找的起始位置(从左向右计数,从0开始),可省略,默认为0。例如:

Stringstr="HelloWorld!";intindex=str.indexOf("o");print(index);//输出:4

在这个例子中, indexOf("o") 方法查找字符串 str 中第一次出现的子串 "o" ,找到后返回其位置4。注意,该方法返回的是子串在原字符串中的位置,不是子串长度。如果要查找多个子串,可以在 startIndex 参数中指定上一次查找结束的位置。如果子串不存在,则返回-1。

16 lastIndexOf

用于查找一个字符串中是否包含指定的子串。如果包含,则返回该子串在原字符串中最后一次出现的位置(从右向左计数,从0开始)。如果不包含,则返回-1。其中, substring 表示要查找的子串, startIndex 表示查找的起始位置(从右向左计数,从0开始),可省略,默认为字符串末尾。例如:

Stringstr="HelloWorld!";intindex=str.lastIndexOf("o");print(index);//输出:7

在这个例子中, lastIndexOf("o") 方法查找字符串 str 中最后一次出现的子串 "o" ,找到后返回其位置7。注意,该方法返回的是子串在原字符串中的位置,不是子串长度。如果要查找多个子串,可以在 startIndex 参数中指定上一次查找结束的位置。如果子串不存在,则返回-1。

17 padLeft

padLeft(width, [padding]) 是一个方法,用于在一个字符串左侧填充指定数量的字符。其中, width 表示填充后字符串的总长度, padding 表示用于填充的字符,可省略,默认为空格字符。例如:

Stringstr="Hello";StringnewStr=str.padLeft(10,"-");print(newStr);//输出:-----Hello

在这个例子中, padLeft(10, "-") 方法将字符串 str 左侧填充5个 "-" 字符,直到长度达到10,返回一个新的字符串 "-----Hello" 。如果原字符串的长度已经大于等于指定的长度,则不会填充任何字符,直接返回原字符串。

18 padRight

padRight(width, [padding]) 是一个方法,用于在一个字符串右侧填充指定数量的字符。其中, width 表示填充后字符串的总长度, padding 表示用于填充的字符,可省略,默认为空格字符。例如:

Stringstr="Hello";StringnewStr=str.padRight(10,"-");print(newStr);//输出:Hello-----

在这个例子中, padRight(10, "-") 方法将字符串 str 右侧填充5个 "-" 字符,直到长度达到10,返回一个新的字符串 "Hello-----" 。如果原字符串的长度已经大于等于指定的长度,则不会填充任何字符,直接返回原字符串。

19 replaceFirstMapped

replaceFirstMapped(from, Function matchFunction) 是一个方法,用于基于正则表达式匹配的方式替换一个字符串中第一次出现的符合条件的子串。其中, from 表示要替换的子串的正则表达式, matchFunction 表示匹配到子串后的替换逻辑。例如:

Stringstr="HelloWorld!";StringnewStr=str.replaceFirstMapped(RegExp(r"(\w+)(\w+)"),(match){return"${match.group(2)}${match.group(1)}";});print(newStr);//输出:World!Hello

在这个例子中, replaceFirstMapped(RegExp(r"(\w+) (\w+)")) 方法基于正则表达式 (\w+) (\w+) 匹配字符串 str 中第一次出现的类似 "Hello World" 的子串。匹配到后,执行匹配函数 (match) {...} 中的逻辑,将子串中的两个单词交换位置,返回一个新的字符串 "World! Hello" 。

注意,匹配函数中的 match 参数为 Match 类型,表示匹配到的子串及其分组信息,可以通过 match.group(n) 方法获取第n个分组中的内容。如果要替换所有匹配到的子串,可以使用 replaceAllMapped() 方法。

20 replaceRange

replaceRange(start, end, replacement) 是一个方法,用于替换一个字符串中指定范围内的子串。其中, start 表示要替换的子串的起始位置(从左向右计数,从0开始), end 表示要替换的子串的结束位置(从左向右计数,从0开始,不包含该位置的字符), replacement 表示替换后的字符串。例如:

Stringstr="HelloWorld!";StringnewStr=str.replaceRange(0,5,"Hi");print(newStr);//输出:HiWorld!

在这个例子中, replaceRange(0, 5, "Hi") 方法将字符串 str 中从位置0到位置5(不包含5)的子串 "Hello" 替换成 "Hi" ,返回一个新的字符串 "Hi World!" 。

注意,替换范围包括起始位置和结束位置,如果要替换到字符串末尾,可以将 end 参数省略或赋值为字符串长度。

21 splitMapJoin

splitMapJoin(pattern, {onMatch, onNonMatch}) 是一个方法,它可以将一个字符串按照指定的模式分割成若干子串,并将每个子串按照指定的方式处理后合并成一个新的字符串。其中, pattern 表示用于匹配子串的模式(可以是一个字符串、一个正则表达式或一个函数), onMatch 表示处理匹配的子串的函数, onNonMatch 表示处理非匹配的子串的函数,如果不指定,则使用默认的处理函数。例如:

Stringstr="HelloWorld!";StringnewStr=str.splitMapJoin("o",onMatch:(match)=>"*",onNonMatch:(nonMatch)=>nonMatch.toUpperCase());print(newStr);//输出:HEL*W*RLD!

在这个例子中, splitMapJoin("o", onMatch: (match) => "*", onNonMatch: (nonMatch) => nonMatch.toUpperCase()) 方法将字符串 str 按照 "o" 字符分割成若干子串,匹配的子串会被替换成 "*" ,非匹配的子串会转换成大写字母。最后将所有子串合并成一个新的字符串 "HEL* W*RLD!" 。

注意, onMatch 和 onNonMatch 参数可以是函数,函数的参数是子串内容,函数的返回值是处理后的子串内容,也可以是字符串,表示直接替换子串内容。如果使用正则表达式作为模式,可以使用 RegExp 类创建正则表达式对象。

22 runes

Dart中的字符串是Unicode字符序列,每个Unicode字符对应一个或多个UTF-16编码的代码单元。使用 runes 属性可以获取字符串中的Unicode字符序列,返回一个可迭代的Unicode字符序列。例如:

Stringstr="????HelloDart!";Iterable<int>runes=str.runes;for(intruneinrunes){print(rune);}

在这个例子中,字符串 str 中包含了一个Unicode字符 ???? ,使用 runes 属性获取字符串的Unicode字符序列,并遍历输出每个字符的编码值。

注意,使用 runes 属性返回的是Unicode字符序列,每个字符对应一个 int 类型的值,而不是UTF-16编码的代码单元序列。如果要将一个Unicode字符序列转换成一个字符串,可以使用 String.fromCharCodes() 方法。

23 String.fromCharCodes

fromCharCodes() 是一个静态方法,用于将一个或多个Unicode字符序列转换成一个字符串。其中,Unicode字符序列可以是一个 List 或一个可迭代对象,每个Unicode字符对应一个 int 类型的数值。例如:

List<int>codes=[72,101,108,108,111];//"Hello"的Unicode编码Stringstr=String.fromCharCodes(codes);print(str);//输出:Hello

在这个例子中,将一个包含字符串 "Hello" 的Unicode编码列表 [72, 101, 108, 108, 111] 转换成一个字符串。

注意,使用 fromCharCodes() 方法时需要保证每个Unicode字符所对应的编码值都是有效的。如果编码值无效,则该方法会抛出异常。

关于“DartString字符串的常用方法有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“DartString字符串的常用方法有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注主机评测网行业资讯频道。


上一篇:python之怎么实现延迟操作

下一篇:Springboot-admin怎么整合Quartz实现动态管理定时任务


Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器