摘要:數(shù)字中定義了三種類型的數(shù)字,分別是和。對(duì)于小數(shù)來(lái)說(shuō),可以使用來(lái)指定小數(shù)的位數(shù)如果要使用科學(xué)記數(shù)法的話,可以使用字符串所有的字符串在中都是以進(jìn)行編碼的,中的定義了很多常用的并且非常有用的方法??偨Y(jié)以上就是中數(shù)字和字符串的介紹。
要想熟悉一種語(yǔ)言,最簡(jiǎn)單的做法就是熟悉dart提供的各種核心庫(kù)。dart為我們提供了包括dart:core,dart:async,dart:math,dart:convert,dart:html和dart:io這幾種常用的庫(kù)。
今天給大家介紹一下dart:core中的數(shù)字和字符串的使用。
dart:core中定義了三種類型的數(shù)字,分別是num,int和double。
num是所有數(shù)字的總稱。int和double都是繼承自num,是num的子類。
事實(shí)上,dart:core中還有以一種數(shù)據(jù)類型叫做BigInt,BigInt是一種獨(dú)立的數(shù)據(jù)類型,并不是num的子類:
abstract class BigInt implements Comparable
數(shù)字中最常見(jiàn)的操作就是將字符串轉(zhuǎn)換為數(shù)字,轉(zhuǎn)換可以調(diào)用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可以是十進(jìn)制、也可以是十六進(jìn)制,如下所示:
assert(int.parse(18) == 18);assert(int.parse(0x05) == 5);assert(double.parse(0.50) == 0.5);
num.parse會(huì)將對(duì)應(yīng)的字符轉(zhuǎn)換成為int或者double類型:
assert(num.parse(18) is int);assert(num.parse(0.50) is double);
parse方法還可以傳入字符串對(duì)應(yīng)的基數(shù),比如是十進(jìn)制還是十六進(jìn)制:
assert(int.parse(11, radix: 16) == 17);
上面我們講到了如何將字符串轉(zhuǎn)換成為數(shù)字,下面是如何將數(shù)字轉(zhuǎn)換成為字符串,num提供了toString()方法,可以方便的將int和double轉(zhuǎn)換成為string。
assert(18.toString() == 18);assert(3.1415.toString() == 3.1415);
對(duì)于小數(shù)來(lái)說(shuō),可以使用toStringAsFixed來(lái)指定小數(shù)的位數(shù):
assert(3.1415.toStringAsFixed(2) == 3.14);
如果要使用科學(xué)記數(shù)法的話,可以使用toStringAsPrecision:
assert(314.15.toStringAsPrecision(2) == 3.1e+2);
所有的字符串在dart中都是以UTF-16進(jìn)行編碼的,dart中的string定義了很多常用的并且非常有用的方法。
比如在字符串中進(jìn)行查詢:
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);
將字符串按照特定字符進(jìn)行截?。?/p>
var parts = www.flydean.com.split(.);assert(parts.length == 3);
那么dart中對(duì)應(yīng)中文的支持是這么樣的呢? 因?yàn)閐art中所有的字符都是以UTF-16來(lái)表示的,如果一個(gè)UTF-16單元能夠表示對(duì)應(yīng)的字符,則中文使用起來(lái)也是沒(méi)有問(wèn)題的:
assert(你好嗎?.substring(1,2) == 好); assert(你好嗎?[1] == 好);
但是有些字符使用一個(gè)UTF-16單元是表示不了的,這時(shí)候就需要用到 characters 包對(duì)特定的字符進(jìn)行處理。
字符串轉(zhuǎn)換為大寫或者小寫:
assert(www.flydean.com.toUpperCase() == WWW.FLYDEAN.COM);// Convert to lowercase.assert(WWW.FLYDEAN.COM.toLowerCase() == www.flydean.com);
dart提供了 trim()方法,可以對(duì)字符串前后端的空格進(jìn)行截?。?/p>
assert( www.flydean.com .trim() == www.flydean.com);
除了顯示的字符串來(lái)創(chuàng)建字符以外,dart還提供了StringBuffer類,通過(guò)StringBuffer類我們可以自由創(chuàng)建字符串:
var sb = StringBuffer();sb ..write(www.flydean.com ) ..writeAll([is, very, good], ) ..write(.);var fullString = sb.toString();
上面代碼輸出:"www.flydean.com is very good."
其中writeAll() 將傳入的字符數(shù)組以特定的連接符進(jìn)行連接。
以上就是dart中數(shù)字和字符串的介紹。
本文已收錄于 http://www.flydean.com/14-dart-number-string/
最通俗的解讀,最深刻的干貨,最簡(jiǎn)潔的教程,眾多你不知道的小技巧等你來(lái)發(fā)現(xiàn)!
歡迎關(guān)注我的公眾號(hào):「程序那些事」,懂技術(shù),更懂你!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/124818.html
摘要:同步的使用關(guān)鍵詞如下異步的使用的是關(guān)鍵詞如下生成關(guān)鍵詞使用的是。從中取出數(shù)據(jù)有兩種方式,第一種就是使用本身的來(lái)獲取中的數(shù)據(jù)。并且必須用在中,如下如果要想中斷對(duì)的監(jiān)聽,則可以使用或者??偨Y(jié)總結(jié)以上就是中生成器的使用了。目錄簡(jiǎn)介兩種返回類型的generatorStream的操作總結(jié)簡(jiǎn)介ES6中在引入異步編程的同時(shí),也引入了Generators,通過(guò)yield關(guān)鍵詞來(lái)生成對(duì)應(yīng)的數(shù)據(jù)。同樣的dart...
摘要:有兩種依賴信息,一種是所有使用到這個(gè)的人都需要用到的依賴,這種依賴放在中。還有一種是只用在當(dāng)前開發(fā)中的包,這種依賴放在中。在某些情況下,我們有可能需要覆蓋某些依賴包,則可以放在中。從之后,中還支持指定的版本總結(jié)總結(jié)以上就是的元世界詳解。? 目錄 簡(jiǎn)介 pubspec.yaml支持的字段 一個(gè)例子 字段詳情 總結(jié) ? 簡(jiǎn)介 pub...
閱讀 740·2023-04-25 19:43
閱讀 3986·2021-11-30 14:52
閱讀 3816·2021-11-30 14:52
閱讀 3873·2021-11-29 11:00
閱讀 3808·2021-11-29 11:00
閱讀 3907·2021-11-29 11:00
閱讀 3584·2021-11-29 11:00
閱讀 6197·2021-11-29 11:00