正則表達式用法,Dart入門—基礎類型與正則

 2023-10-21 阅读 24 评论 0

摘要:基礎數據類型與正則 數字與布爾值 數字類型與布爾類型與其他語言是一樣一樣的 部分屬性 int figureA = -93;// figureA是否為負數print(figureA.isNegative);// figureA是否是有限的print(figureA.isFinite);// figureA是否正無窮大或負無窮大print(figureA.isInfinite);d

基礎數據類型與正則

數字與布爾值

數字類型與布爾類型與其他語言是一樣一樣的

部分屬性

    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"));

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/157123.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息