在 Dart 中,字符串是处理文本数据的主要方式。字符串是不可变的,这意味着一旦创建了一个字符串对象,就不能更改它的内容。本文将详细介绍 Dart 字符串的一些常用属性和方法。
字符串的基本操作
字符串拼接
你可以使用 +
运算符或者 concat
方法来拼接字符串。不过在 Dart 中,更常见的是使用 +
或者 ""
模板字符串来实现这一功能。
// javascriptcn.com 代码示例 void main() { String firstName = "张"; String lastName = "三"; // 使用 + 运算符 String fullName1 = firstName + " " + lastName; print(fullName1); // 输出:张 三 // 使用模板字符串 String fullName2 = '$firstName $lastName'; print(fullName2); // 输出:张 三 }
字符串截取
字符串提供了多种方法来获取子字符串:
substring(int startIndex, [int endIndex])
: 返回从startIndex
到endIndex - 1
的子字符串。如果省略endIndex
,则返回从startIndex
到字符串末尾的子字符串。split(String pattern)
: 根据指定的分隔符分割字符串,并返回一个列表。
// javascriptcn.com 代码示例 void main() { String str = "Hello Dart"; // substring 示例 String subStr1 = str.substring(6); print(subStr1); // 输出:Dart String subStr2 = str.substring(0, 5); print(subStr2); // 输出:Hello // split 示例 List<String> parts = str.split(" "); print(parts); // 输出:[Hello, Dart] }
字符串比较与搜索
字符串比较
Dart 提供了多种字符串比较的方法:
compareTo(String other)
: 比较当前字符串与其他字符串的字典顺序。equalsIgnoreCase(String other)
: 比较两个字符串是否相等,忽略大小写。
// javascriptcn.com 代码示例 void main() { String str1 = "hello"; String str2 = "HELLO"; String str3 = "world"; // compareTo 示例 int result = str1.compareTo(str2.toLowerCase()); print(result == 0); // 输出:true // ignoreCase 示例 bool isEqualIgnoreCase = str1.equalsIgnoreCase(str2); print(isEqualIgnoreCase); // 输出:true }
字符串搜索
contains(pattern)
: 检查字符串是否包含指定的模式。indexOf(pattern)
: 返回指定模式首次出现的位置。如果没有找到,则返回 -1。lastIndexOf(pattern)
: 返回指定模式最后一次出现的位置。如果没有找到,则返回 -1。replaceAll(pattern, replacement)
: 将所有匹配的模式替换为指定的字符串。replaceFirst(pattern, replacement)
: 替换第一次出现的匹配项。
// javascriptcn.com 代码示例 void main() { String text = "Hello, welcome to the world of Dart!"; // contains 示例 bool containsWorld = text.contains("world"); print(containsWorld); // 输出:true // indexOf 示例 int index = text.indexOf("Dart"); print(index); // 输出:27 // replaceAll 示例 String replacedText = text.replaceAll("Dart", "Flutter"); print(replacedText); // 输出:Hello, welcome to the world of Flutter! }
字符串格式化
字符串插值
Dart 支持通过 ${}
来进行变量插值,也可以直接使用 $
符号。
// javascriptcn.com 代码示例 void main() { int age = 28; String name = "李四"; // 插值示例 String greeting = '我的名字叫 ${name},今年 ${age} 岁'; print(greeting); // 输出:我的名字叫 李四,今年 28 岁 // 直接使用 $ 符号 String anotherGreeting = "我的名字叫 $name,今年 $age 岁"; print(anotherGreeting); // 输出:我的名字叫 李四,今年 28 岁 }
字符串填充
Dart 也提供了对字符串填充的支持,可以用来格式化输出。
// javascriptcn.com 代码示例 void main() { int number = 42; double pi = 3.14159; // 使用 toStringAsFixed() 方法 String formattedNumber = number.toString(); String formattedPi = pi.toStringAsFixed(2); print(formattedNumber); // 输出:42 print(formattedPi); // 输出:3.14 }
以上介绍了 Dart 中字符串的一些基本操作、比较与搜索、以及格式化的方法。掌握这些知识可以帮助你在日常开发中更加高效地处理字符串数据。