资讯专栏INFORMATION COLUMN

dart系列之:在dart中使用数字和字符串

番茄西红柿 / 2898人阅读

摘要:数字中定义了三种类型的数字,分别是和。对于小数来说,可以使用来指定小数的位数如果要使用科学记数法的话,可以使用字符串所有的字符串在中都是以进行编码的,中的定义了很多常用的并且非常有用的方法。总结以上就是中数字和字符串的介绍。

简介

要想熟悉一种语言,最简单的做法就是熟悉dart提供的各种核心库。dart为我们提供了包括dart:core,dart:async,dart:math,dart:convert,dart:html和dart:io这几种常用的库。

今天给大家介绍一下dart:core中的数字和字符串的使用。

数字

dart:core中定义了三种类型的数字,分别是num,int和double。

num是所有数字的总称。int和double都是继承自num,是num的子类。

事实上,dart:core中还有以一种数据类型叫做BigInt,BigInt是一种独立的数据类型,并不是num的子类:

abstract class BigInt implements Comparable

数字中最常见的操作就是将字符串转换为数字,转换可以调用parse方法,先看下num中parse方法的定义:

  static num parse(String input, [@deprecated num onError(String input)?]) {    num? result = tryParse(input);    if (result != null) return result;    if (onError == null) throw FormatException(input);    return onError(input);  }

传入的input可以是十进制、也可以是十六进制,如下所示:

assert(int.parse(18) == 18);assert(int.parse(0x05) == 5);assert(double.parse(0.50) == 0.5);

num.parse会将对应的字符转换成为int或者double类型:

assert(num.parse(18) is int);assert(num.parse(0.50) is double);

parse方法还可以传入字符串对应的基数,比如是十进制还是十六进制:

assert(int.parse(11, radix: 16) == 17);

上面我们讲到了如何将字符串转换成为数字,下面是如何将数字转换成为字符串,num提供了toString()方法,可以方便的将int和double转换成为string。

assert(18.toString() == 18);assert(3.1415.toString() == 3.1415);

对于小数来说,可以使用toStringAsFixed来指定小数的位数:

assert(3.1415.toStringAsFixed(2) == 3.14);

如果要使用科学记数法的话,可以使用toStringAsPrecision:

assert(314.15.toStringAsPrecision(2) == 3.1e+2);

字符串

所有的字符串在dart中都是以UTF-16进行编码的,dart中的string定义了很多常用的并且非常有用的方法。

比如在字符串中进行查询:

assert(www.flydean.com.contains(flydean));assert(www.flydean.com.startsWith(www));assert(www.flydean.com.endsWith(com));assert(www.flydean.com.indexOf(flydean) == 4);

从字符串中截取子串:

assert(www.flydean.com.substring(4, 11) == flydean);

将字符串按照特定字符进行截取:

var parts = www.flydean.com.split(.);assert(parts.length == 3);

那么dart中对应中文的支持是这么样的呢? 因为dart中所有的字符都是以UTF-16来表示的,如果一个UTF-16单元能够表示对应的字符,则中文使用起来也是没有问题的:

  assert(你好吗?.substring(1,2) == 好);  assert(你好吗?[1] == 好);

但是有些字符使用一个UTF-16单元是表示不了的,这时候就需要用到 characters 包对特定的字符进行处理。

字符串转换为大写或者小写:

assert(www.flydean.com.toUpperCase() ==    WWW.FLYDEAN.COM);// Convert to lowercase.assert(WWW.FLYDEAN.COM.toLowerCase() ==    www.flydean.com);

dart提供了 trim()方法,可以对字符串前后端的空格进行截取:

assert(  www.flydean.com  .trim() == www.flydean.com);

StringBuffer

除了显示的字符串来创建字符以外,dart还提供了StringBuffer类,通过StringBuffer类我们可以自由创建字符串:

var sb = StringBuffer();sb  ..write(www.flydean.com )  ..writeAll([is, very, good],  )  ..write(.);var fullString = sb.toString();

上面代码输出:"www.flydean.com is very good."

其中writeAll() 将传入的字符数组以特定的连接符进行连接。

总结

以上就是dart中数字和字符串的介绍。

本文已收录于 http://www.flydean.com/14-dart-number-string/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124818.html

相关文章

  • dart系列:dart使用生成器

    摘要:同步的使用关键词如下异步的使用的是关键词如下生成关键词使用的是。从中取出数据有两种方式,第一种就是使用本身的来获取中的数据。并且必须用在中,如下如果要想中断对的监听,则可以使用或者。总结总结以上就是中生成器的使用了。目录简介两种返回类型的generatorStream的操作总结简介ES6中在引入异步编程的同时,也引入了Generators,通过yield关键词来生成对应的数据。同样的dart...

    yck 评论0 收藏0
  • dart系列:元世界pubspec.yaml文件详解

    摘要:有两种依赖信息,一种是所有使用到这个的人都需要用到的依赖,这种依赖放在中。还有一种是只用在当前开发中的包,这种依赖放在中。在某些情况下,我们有可能需要覆盖某些依赖包,则可以放在中。从之后,中还支持指定的版本总结总结以上就是的元世界详解。  目录 简介 pubspec.yaml支持的字段 一个例子 字段详情 总结   简介 pub...

    vibiu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<