首页 / 正则 / Dart入门—基础类型与正则
Dart入门—基础类型与正则
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Dart入门—基础类型与正则,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5209字,纯文字阅读大概需要8分钟。
内容图文
基础数据类型与正则
数字与布尔值
数字类型与布尔类型与其他语言是一样一样的
部分属性
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 = ‘Dartis 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"));
原文:http://blog.csdn.net/hekaiyou/article/details/51310381
内容总结
以上是互联网集市为您收集整理的Dart入门—基础类型与正则全部内容,希望文章能够帮你解决Dart入门—基础类型与正则所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。