flutter的核心库
整理一下flutter的核心库方便以后使用查询。
数字int
int常用属性
- sign: 返回此整数的符号,对于0返回0,对于小于0的数返回-1,对于大于0的数返回+1
- bitLength:返回储存此整数所需要的最大位数;4->00000001
- isEven:判断此整数是不是偶数;
- isOdd:判断此整数是不是奇数;
int的常用方法
- toRadixString(int radix) , 把当前的整数转换进制,radix表示进制的数字2~36.
- tryParse(String source,{int radix}), 将字符串source解析为可能带符号的整数文字,radix表示进制;
- parse()将字符串转为整数
字符串
- endsWith(String other) : 判断此字符串是否以other为结尾
- contains(Pattern other, [int start=0]),判断此字符串是否包含other的匹配项,start为默认参数,从start开始包含start开始匹配;
- indexOf(Pattern pattern ,[int start]) ,返此字符串中第一个匹配到pattern的位置,如果穿了start就从start开始,没有就返回-1;
- lastIndexOf(Pattern pattern {[int start]}),返回此字符串中最后一个匹配到的位置,没有就返回-1.
- startsWith (Pattern pattern ,[inde index=0]),判断此字符串是否已特定的pattern开头,如是就返回true,如果传入了index则index处开始判断。没有匹配到就返回-1.
字符串截取
- substring(int startIndex,[int endIndex]):返回此字符串的子字符串,从startIndex到endIndex,不设置endIndex则到字符串结尾。
- split(Pattern pattern):在pattern处开始拆分字符串,并且返回子字符串列表。
大小写切换
- toLowerCase(): 将此字符串全切换成小写
- toUpperCase():将此字符串全切换成大写
裁剪空字符串
- trim(),返回没有任何前导和尾随空格的字符串
- trimLeft(),返回没有任何前导空格的字符串
- trimRight(),返回没有任何尾随空格的字符串
- isEmpty(),判断当前字符串是否为空
字符串替换
- replaceAll(Pattern pattern ,String replace ), 使用replace替换所有匹配的子字符串 。 (PS 字符串是不可改变的对象,所以获得字符串是重新的创建的对象)
构建字符串
StringBuffer 是一个串联字符串的类,允许使用write*()来增加构建字符串,只有调用toString()的时候才会创建新的String对象。
- claer() 清楚字符缓冲空间
- write(Object object):将以转换为字符串的obj的内容添加到缓冲区
- writeAll(Iterable objectrs,[String separator = “”]): 遍历给定对象并按顺序写入他们,可选参数separator为写入时提供分隔符
正则表达式
Pattern 类有两个实现,一个String 另一个是RegExp
RegExp 类提供与JavaScript正则表达式相同的功能。
void main () {
var numbers = RegExp(r'\d+');
var allcharacters = "llamas live fifiteen to twenty years ";
var someDigits = "llamas live 15 to 20 years ";
print(allcharacters.contains(numbers));
print(someDigits .contains(numbers));
var exedOut = someDigits .contains(numbers);
print(exedOut);
}
也可以使用Match类
void main (){
var numbers = RegExp(r'\d+');
var someDigits = "llamas live 15 to 20 years ";
print(numbers.hasMatch(someDigits));
for (var match in numbers.allMatch(someDigits)){
print(match.group(0));
}
}
URI
- decodeFull(String uri ) : uri适用百分比编码对字符串进行编码,使其可以安全用作完整的URI
- encodeFull(String uri): 解码uri中的百分比编码
编码解码URI组件
encodeComponent(String component) :使用百分比组件对字符串component进行编码,使其可以安全用作URI组件;
decodecomponent(String encodedComponent):解码 中的百分比编码
####构建URIs
parse(String uri,[int start =0,int end])
Uri的工厂方法。
时间和日期
- DateTime(…),根据本地市区来构建一个datetime实例
- DateTime.now(),使用本地市区当前时间来构建一个datatime的实例
- DateTime.utc(…)使用UTC来构建一个datetime的实例
- tryParse(String formattedString ):解析formattedString来构建一个DateTime的实例
数学库
import ‘dart:math’;
- Max(T a , T b); 输出两个数中大数
- min (Ta , Tb); 输出两个数中小数
- sqrt(num x): 将x转为double类并输出正平方根
- Random([int send]) 随机生成一个整数 可选speed参数用于初始化生成器内部状态
- nextBool() 随机生成一个布尔值
- nextDouble() 生成一个非负的浮点数范围【0,1)
- nexInt(int max) 生成一个非负的随机整数
转换库
import ‘dart:covnert’
编码和解码Json
- jsonEncode(Objectvalue, {ObjecttoEncodAble(ObjectnonEncodable)}):将值转为json字符串,如果包含无法直接编码为JSON的对象,可以调用toEncodAble的函数,让其转为可编码对象。
- JsonDecode(String source,{Object reviver(Objectkey,Object value)}):解析字符串并返回生成的JSON对象,对于在解码过程中已经解析的每个对象或者列表属性,都会调用一次可选的reviver函数。key是列表属性的索引
- encode(String input):将字符串转为UTF-8编码的字节列表
- decode(ListcodeUnits,{bool allowMalformed}):将UTF-8 单元解码成相应的字符串。
输入和输出的库
import “dart:io”
通过I/O库可以读取和写入文件及浏览目录。有两种选择来读取文件内容,如果文件小 可以采用“全部读取”;如果文件比较大则可以选择“流式读取”。文件通常的构造函数和方法:
- File(String path):从String路径创建一个file对象
- File.fromUri(Uri uri):从URI创建一个file对象
- openRead([int start ,int end]):为此内容创建一个新的独立的Stream,start为指定的开始偏移字节数,end为指定的结尾位置
- openWrite({FileMode mode:FileMode.write,Enciding encoding:utf8}):为该文件创建一个新的独立的IOSink,当不使用时必须关闭,FileMode.write将初始写入位置设置为开头,FileMode.append,将初始写入位置设置成结尾
- readAsString({Encoding encoding:utf-8}):给指定的encoding,以字符串的形式来读取文件
- readAsLines({Encoding encoding:utf-8}) 使用给定的Encoding以行来读取文件,返回一个Future<List>
- readByBites()以字节列表形式读取文件
写入文件内容
- IOSink(StreamConsumer<List>target,{Ecoding encoding:utf8}):构造函数创建一个IOSink对象,StrreamConsumer是一个接受多个完成流的接收器的抽象接口
- add<Listdata>:将字节流添加到目标使用者
- close():关闭目标使用者
- flush():返回一个future,一旦基础的streamConsumer接受了所有的缓冲数据该Future将会完成。
- write(Object obj):将obj转换为String,并将结果的编码添加到目标使用者
- writeAll(Iterable objects,[String separator =“”]):遍历指定的objects并将其按照顺序写入,separator为写入时的分隔符
列出目录中的文件
- Directory(String path):构造函数,创建一个directory对象
- list({bool recursive:false,bool followLinks:ture}):列出此目录的子目录和文件的可选参数recursive表示递归到子目录。返回用于目录、文件和链接的FileSystemEntity对象流