Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
50 lines (38 sloc) 1.43 KB

练习16. 操作字符串

还记得我们的 temp 目录和里面的 readme.txt 吗?它依然是很有用的,我们要用来演示一下对字符串的一些操作。

// 操作字符串

f := File with("readme.txt")
f openForReading
f contents println

"----以上是原文本----" println
("f的编码 " .. (f contents encoding)) println
("f的字符长度 " .. (f size)) println

c := f contents
("是否包含有\“English\”? " .. c containsSeq("English")) println
("是否包含有\“哈哈\”? " .. c containsSeq("哈哈")) println
("是否包含有\“你好\”? " .. c containsSeq("你好")) println	// 出错了吧
// 做一点修改,用utf8来查找
c := f contents asUTF8
("c的编码 " .. c encoding) println
s := "你好" asUTF8
("s的编码 " .. s encoding) println
("是否包含有\“你好\”? " .. c containsSeq(s)) println	

这里我们用了一些新的写法,注意学习,尤其是 asUTF8 这个方法,这是中文这样的东亚文字在各种编程语言中常见的操作,都需要转化成UTF-8编码,才能得到我们意料中的结果

运行 ex16.io,应该可以看到

> io ex16.io
你好,我来写入一些中文
还有 English
这是第三行

----以上是原文本----
f的编码 ascii
f的字符长度 65
是否包含有“English”? true
是否包含有“哈哈”? false
是否包含有“你好”? false
c的编码 ascii
s的编码 utf8
是否包含有“你好”? true