基础数据类型与正则

数字与布尔值

数字类型与布尔类型与其他语言是一样一样的

部分属性

    int figureA = -93;// figureA是否为负数print(figureA.isNegative);// figureA是否是有限的print(figureA.isFinite);// figureA是否正无穷大或负无穷大print(figureA.isInfinite);double figureB = 64.742;// 返回figureB的符号,-1.0:值小于0、+1.0:值大于0、-0.0/0.0/NaN:值是其本身print(figureB.sign);// 返回figureB运行时的类型print(figureB.runtimeType);// 返回figureB的哈希码print(figureB.hashCode);int figureC = 13;// figureC是否为奇数print(figureC.isOdd);// figureC是否为偶数print(figureC.isEven);// 返回figureC所占存储位print(figureC.bitLength);

常用方法

    int figureA = -93;// 返回figureA的绝对值print(figureA.abs());// 返回figureA的字符串print(figureA.toString());double figureB = 64.742;// 返回figureB的整数值print(figureB.toInt());// 返回figureB的双精度值print(figureB.toDouble());// 返回大于figureB的双精度值print(figureB.ceilToDouble());// 返回小于figureB的双精度值print(figureB.floorToDouble());// 返回figureB四舍五入的双精度值print(figureB.roundToDouble());// 返回figureB保留几位小数的字符串print(figureB.toStringAsFixed(2));// 返回figureB保留几位小数后精确结果的字符串print(figureB.toStringAsPrecision(3));int figureC = 31;// figureC对比其他整数,0:相同、1:大于、-1:小于print(figureC.compareTo(20));// 将figureC控制在指定区间的整数print(figureC.clamp(20, 25));// 返回figureC转换成指定基数(进制)的字符串print(figureC.toRadixString(16));int figureD = 12;// 返回figureD与其他整数的最大公约数print(figureD.gcd(18));// 返回figureDg与其他整数的截取余数print(figureD.remainder(18));// 返回figureD几次幂值的字符串print(figureD.toStringAsExponential(2));

字符串常量与变量

字符串常量

String是一成不变的,一旦定义就不能改变

String name = "XiaoMing say : \n";
String say = """
Keep on going ...
never give up ...
never say die ...
""";
print(name + say);

部分属性

    String str = "Hello world!";// 返回字符串的UTF-16代码单元列表print(str.codeUnits);// 返回根据代码单元生成的哈希码print(str.hashCode);// 字符串是否为空print(str.isEmpty);// 字符串是否不为空print(str.isNotEmpty);// 字符串的长度print(str.length);// 返回字符串Unicode代码的可迭代对象print(str.runes);// 返回对象运行时的类型print(str.runtimeType);

常用方法

返回对象的字符串表示

String str = "Hello world!";
print(str.toString());

截取字符串

String str = 'Dart is fun';
String newStr = str.substring(0, 4);
print(newStr);

在字符串中插入字符串

String name = "XiaoMing";
print("My name is ${name}");

输出字符串的Unicode编码

String str = "Dart";
print(str.codeUnitAt(0));
print(str.codeUnits);

去掉字符串前后空格

String str = "\tDart is fun\n";
print(str.trimLeft());
print(str.trimRight());
print(str.trim());

字符串的大小写转换

String str = "ABCdef";
print(str.toLowerCase());
print(str.toUpperCase());

拆分字符串

String strA = "Hello world!";
print(strA.split(" "));String strB = "abba";
print(strB.split(new RegExp(r"b*")));

是否包含其他字符串

String str = 'Dart strings';
print(str.contains('D'));
print(str.contains(new RegExp(r'[A-Z]')));
print(str.contains('D', 0));
print(str.contains(new RegExp(r'[A-Z]'), 0));

在字符串前后补占位符

String str = "86";
print(str.padLeft(4, '0'));
print(str.padRight(4, '0'));

获取指定字符出现的位置

String str = 'Dartisans';print(str.indexOf('art'));
print(str.indexOf(new RegExp(r'[A-Z][a-z]')));print(str.lastIndexOf('a'));
print(str.lastIndexOf(new RegExp(r'a(r|n)')));

替换字符串中所有匹配字符

String str = "resume";
print(str.replaceAll(new RegExp(r'e'), 'é'));

字符串变量

StringBuffer是可改变的,定义后还可以再修改

StringBuffer xiaomingSaid = new StringBuffer();
xiaomingSaid.write("All the world's a stage ... ");
xiaomingSaid.write("And all the men and women merely players ...");
print(xiaomingSaid);

部分属性

    StringBuffer strBuf = new StringBuffer();strBuf.write("Sow nothing, reap nothing.");// 返回字符串缓冲区的哈希码print(strBuf.hashCode);// 字符串缓冲区是否为空print(strBuf.isEmpty);// 字符串缓冲区是否不为空print(strBuf.isNotEmpty);// 返回字符串缓冲区累积内容的长度print(strBuf.length);// 返回对象运行时的类型print(runtimeType);

常用方法

    StringBuffer strBuf = new StringBuffer();// 添加字符串到字符串缓冲区内strBuf.write("Do one thing at a time, and do well.");// 返回字符串缓冲区的所有内容print(strBuf.toString());// 清除字符串缓冲区strBuf.clear();

正则表达式

部分属性

    RegExp exp = new RegExp(r"(\w+)");// 返回正则表达式的哈希码print(exp.hashCode);// 正则表达式是否区分大小写print(exp.isCaseSensitive);// 正则表达式是否匹配多行print(exp.isMultiLine);// 返回源正则表达式字符串print(exp.pattern);// 返回对象运行时的类型print(exp.runtimeType);

常用方法

    RegExp exp = new RegExp(r"(\w+)");// 返回正则表达式匹配项的可迭代对象print(exp.allMatches("abc def ghi"));// 搜索并返回第一个匹配项,没有则返回nullprint(exp.firstMatch(""));// 正则表达式是否找到匹配项print(exp.hasMatch("as"));// 从第几个字符开始匹配正则表达式print(exp.matchAsPrefix("ab cd", 3));// 返回正则表达式的第一个匹配字符串print(exp.stringMatch("abc de"));// 返回正则表达式的字符串表示print(exp.toString());

实用案例

验证邮政编码的正则,返回是否匹配的布尔值

RegExp postalcode = new RegExp(r'(\d{6})');
print(postalcode.hasMatch("518000"));

验证手机号码的正则,以Iterable< Match >返回所有匹配项

RegExp mobile = new RegExp(r"(0|86|17951)?(13[0-9]|15[0-35-9]|17[0678]|18[0-9]|14[57])[0-9]{8}");
Iterable<Match> mobiles = mobile.allMatches("13812345678 12345678901 17012345678");
for (Match m in mobiles) {String match = m.group(0);print(match);
}

验证网址URL的正则,如果匹配成功以Match返回匹配项,否则返回null

RegExp url = new RegExp(r"^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+");
print(url.firstMatch("http://www.google.com"));

验证身份证号码的正则,返回第一个匹配的字符串

RegExp identity = new RegExp(r"\d{17}[\d|x]|\d{15}");
print(identity.stringMatch("My id number is 35082419931023527x"));

Dart入门—基础类型与正则相关推荐

  1. swift编程语言入门-基础类型

    基础类型 虽然Swift是一个为开发iOS和OS X app设计的全新编程语言,但是Swift的很多特性还是跟C和Objective-C相似. Swift 也提供了与C和Objective-C类似的基 ...

  2. 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配

    此文为python正则表达式的高阶入门,正则基础入门请参考程序员入门基础:python的正则表达式. 一.贪婪匹配和非贪婪匹配 举例说明概念: print('非贪婪匹配',re.search('el+ ...

  3. Dart学习日记-基础类型

    Numbers Dart 支持两种 Number 类型: int 整数值:长度不超过 64 位,具体取值范围依赖于不同的平台. 在 DartVM 上其取值位于 -263 至 263 - 1 之间. 在 ...

  4. Python 入门基础 - 基础类型

    Python 基础类型 数字: Python 各个进制转化 可以使用bool 来判断所属对象是否为空 python 原始字符 r', 但是注意 如下图所示, 这种是不允许的 ord - 转换 ASIC ...

  5. 深入入门正则表达式(java) - 1 - 入门基础

    深入入门正则表达式(java) - 引言 深入入门正则表达式(java) - 1 - 入门基础  深入入门正则表达式(java) - 2 - 基本实例 深入入门正则表达式(java) - 3 - 正则 ...

  6. Gtest 测试指导 入门基础(A)

    Gtest 测试指导 入门基础(A) Table of Contents • 1 Gtest的基本使用,包括下载,安装,编译. o 1.1 下载 o 1.2 编译  1.2.1 Gtest静态库的编 ...

  7. HTML入门基础教程相关知识

    HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...

  8. 4.Jenkins入门基础使用与邮箱钉钉微信消息通知集成配置与实践

    WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少. Tips : 本文章来源 Blog 站点或者 WeiyiGeek 公众账号 (技术交流.友链交换请邮我哟), 原文地址: 4.J ...

  9. javaee入门基础重要知识

    ** javaee入门基础重要知识 ** 一.Java概述: 操作系统:pc端: Windows系统, Linux系统 Unix系统 Mac系统 4种 手机端: IOS 安卓 黑莓 鸿蒙 4种 框架: ...

最新文章

  1. 全球知名物联网研究机构预测:2016物联网发展形势
  2. 操作系统编写之引导扇区
  3. UWP_Homework_4 A MediaPlayer
  4. android 图片作为背景图片,Android设置网络图片为手机背景图片的方法
  5. 巴巴运动网学习笔记(21-25)
  6. 对战 | RabbitMq 大战 kafka
  7. 春节假期,把“电影院”搬回家,泰捷WEBOX T1S 投影仪全面评测
  8. 未能加载文件或程序集“FastReport
  9. 用conda建一个python2虚拟环境
  10. 排水沟槽开挖土方的计算方法(平行相似梯形组成的六面体体积分割计算方法)
  11. 山东省技能兴鲁职业技能竞赛-人工智能工程技术人员
  12. (小说)代码,也是有温度的。一个35岁程序员的心理蜕变。
  13. iou(交并比)的概念
  14. 双鱼和射手怎样能合拍(图
  15. hp打印机无法与计算机,HP打印机无法连接到计算机
  16. MPC5748G开发笔记-----S32DS提示The target may have entered reset escalation
  17. 怪兽充电或赴美上市,官网域名竟然是个组合域名?
  18. 服务器 SaaS、PaaS、IaaS 区别
  19. SpringBoot 速记
  20. BetaFlight模块设计之七:LEDSTRIP任务分析

热门文章

  1. 实验4.2 实现客户机(CLIENT)类
  2. “RuntimeError: main thread is not in main loop“的几种解决方案
  3. python 批量自动搜索、自动抓取需要的信息简单教程【selenium】
  4. STL数组处理常用函数
  5. ROS学习笔记八:创建ROS msg和srv
  6. 数据结构 (二) ----- 单向链表双向链表
  7. 一个卖了1300的Java程序引发的深思
  8. SQL SERVER数据库设计与现实
  9. day03 Python爬虫
  10. Appium+Python之批量执行测试用例