第三百四十九回

news/2024/7/5 7:27:30

文章目录

  • 1. 概念介绍
  • 2. 原理与方法
    • 2.1 知识对比
    • 2.2 使用方法
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"加密包crypto"相关的内容,本章回中将介绍characters包.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

在项目中会遇到获取字符串中某一个或者多个字符的需求,比如我们想获取"hello-word"中减号后面的字符,怎么办呢?本章回将介绍具体的操作方法。

2. 原理与方法

在Flutter中获取字符串中的字符需要借助三方包来实现,这个三方包叫作:characters,不过该包是dart官方推出的包,因此大家可以放心使用: 一方面不用担心
包中的错误,另一方面不用担心它后期的维护问题。

2.1 知识对比

我记得在C编程语言中,字符和字符串都是独立的类型,字符是char类型,字符串是char类的的数组,想使用字符串中的某个字符时直接从数组中获取某个成员就可以。
在dart中时没有给字符设置专门的类型,但是对字符串设置了专门的类型:String.我们想获取字符串中的某一个或者多个字符时可以使用String的substring()方
法,在该方法中传入字符在字符串中的索引值就可以获取到该字符。它的原理和C语言中从字符数组中获取字符相同,不过它获取到的仍然是一个字符串,只不过该字符串
中包含一个或者多个字符,不要以为只有一个字符就是字符类型,它仍然是String类型的字符串。

2.2 使用方法

  • 在yaml配置文件中导入characters包,并且获取到当前项目中;
  • 通过characters属性可以把字符串转换成字符;
  • 使用包中的相关的接口获取到想要的字符;
    上面介绍的方法比较抽象,我们将在后面的小节中通过具体的示例代码来演示。

3. 示例代码

// Using String indices.
String firstTagString(String source) {
  var start = string.indexOf("<") + 1;
  if (start > 0) {
    var end = string.indexOf(">", start);
    if (end >= 0) {
      return string.substring(start, end);
    }
  }
  return null;
}

// Using CharacterRange operations.
Characters firstTagCharacters(Characters source) {
  var range = source.findFirst("<".characters);
  if (range != null && range.moveUntil(">".characters)) {
    return range.currentCharacters;
  }
  return null;
}

上面的示例代码演示了如何从字符串中获取字符,代码中使用了两种方法来获取字符串中的字符,大家可以对比一下其中的差异。这些示例代码来自官方文档,建议大家自
己动手去试试,体验一下程序的运行结果。此外,characters包提代了接口比较多,这些接口完全可以满足项目中的需求,限于篇幅,我们在这里就不一一演示这些接
口了,大家可以参考官方文档中的介绍。

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • 使用characters包中的接口可以从字符中获取到字符;
  • characters包获取字符的原理和C语言中通过字符数组获取字符的原理相同;
  • characters包提供了多个操作字符的接口,建议大家查阅官方文档;
    看官们,与"characters包"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论

http://lihuaxi.xjx100.cn/news/2032194.html

相关文章

突破编程_C++_面试(基本数据类型)

面试题1&#xff1a;在32位和64位系统上&#xff0c;int、short、long、long long 和 char 类型通常分别占用多少字节 在 32 位和 64 位系统上&#xff0c;int、short、long、long long 和 char 类型的大小可能会有所不同&#xff0c;这取决于编译器和操作系统。但按照常见的约…

Rocky Linux 下载安装

一、VMware Workstation下载安装 1、安装教程 VMware Workstation下载安装&#xff08;含密钥&#xff09; 二、VMware Workstation 创建虚拟机 1、创建教程 VMware Workstation 创建虚拟机 三、Rocky Linux 下载 1、下载官网 RockyLinux.org 2、选择X86架构_64位系统_DVD镜…

政安晨:【完全零基础】认知人工智能(一)【超级简单】的【机器学习神经网络】 —— 预测机

开个头 很多小伙伴们很想亲近人工智能与机器学习领域&#xff0c;然而这个领域里的核心理论、算法、工具给人感觉都太过“高冷”&#xff0c;让很多小伙伴们望而却步&#xff0c;导致一直无法入门。 如何捅破这层窗户纸&#xff1f; 让高冷的不再高冷&#xff0c;让神秘的不…

Java - SPI机制

本文参考&#xff1a;SPI机制 SPI&#xff08;Service Provider Interface&#xff09;&#xff0c;是JDK内置的一种服务提供发现机制&#xff0c;可以用来启动框架扩展和替换组件&#xff0c;主要是被框架的开发人员使用&#xff0c;比如 java.sql.Driver接口&#xff0c;其他…

【Java EE初阶十二】网络原理(二)

2. 传输层 2.2 TCP协议 2.2.2 关于可靠传输 4.滑动窗口 前面的三个机制&#xff0c;都是在保证 tcp 的可靠性&#xff1b; TCP 的可靠传输,是会影响传输的效率的.(多出了一些等待 ack 的时间,单位时间内能传输的数据就少了)&#xff1b; 滑动窗口,就让可靠传输对性能的影响,更…

【JavaScript】深浅拷贝

JavaScript中复制对象有深拷贝和浅拷贝两种方式 浅拷贝:浅拷贝只复制对象的第一层属性,而不复制嵌套对象的引用。这意味着如果原始对象包含嵌套对象,浅拷贝后的对象仍然会共享这些嵌套对象的引用。可以使用`Object.assign()`或展开运算符(`...`)来进行浅拷贝。 // 浅拷贝示…

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?<= , (?= , (?<! , (?!

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?< , (? , (?<! , (?! 有好多种称呼 (?< , (? , (?<! , (?! 有好多种称呼 , 我称为: 左限定, 右限定, 左否定, 右否定 (?<左限定)    (?右限定)(?<!左否定)    (?!右限定) 再…

spring boot3登录开发-1(整合jwt)

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途。 目录 前置条件 jwt简介 导依赖 编写jwt工具类 1.配置项直接嵌入代码&#xff0c;通过类名.静态方法使用 2.配置项写到…