从文件中读取字符串
来源:互联网 发布:天津市教育信息化软件 编辑:程序博客网 时间:2024/05/18 01:13
问题:如何从磁盘文件中读取字符串儿,然后按行将其倒序输出?
下面一段材料取自陈寿《三国志》卷三十五诸葛亮传,我把它分成了10段,现在要求从磁盘文件中读取这段文字,然后按照一定的规则倒序输出。比如说,如果我要求输出3行,系统会依次输出第10、9、8三行;如果我要求输出20行,则系统会依次输出10、9、8 ... 3、2、1行;如果我要求输出0行,则系统什么也不做。
(01) 自董卓已来,豪杰并起,跨州连郡者不可胜数。 (02) 曹操比于袁绍,则名微而众寡,然操遂能克绍,以弱为强者,非惟天时,抑亦人谋也。 (03) 今操已拥百万之众,挟天子而令诸侯,此诚不可与争锋。 (04) 孙权据有江东,已历三世,国险而民附,贤能为之用,此可以为援而不可图也。 (05) 荆州北据汉、沔,利尽南海,东连吴会,西通巴、蜀,此用武之国,而其主不能守,此殆天所以资将军,将军岂有意乎? (06) 益州险塞,沃野千里,天府之土,高祖因之以成帝业。 (07) 刘璋暗弱,张鲁在北,民殷国富而不知存恤,智能之士思得明君。 (08) 将军既帝室之胄,信义著于四海,总揽英雄,思贤如渴,若跨有荆、益,保其岩阻,西和诸戎,南抚夷越,外结好孙权,内修政理; (09) 天下有变,则命一上将将荆州之军以向宛、洛,将军身率益州之众出于秦川,百姓孰敢不箪食壶浆以迎将军者乎? (10) 诚如是,则霸业可成,汉室可兴矣。
解决这个问题的思路主要分为两步:首先,从磁盘文件中读取字符串儿,然后再把它存储到一个数组中,并且每一行字符串儿单独作为一个数组元素,最后再将数组元素进行逆转操作;其次,要对要求输出的行数n进行判断,如果n小于总行数,则直接输出n行(也就是n个数组元素),如果n大于等于总行数,则将数组中所有的元素全部输出。用代码表示如下:
func challenge(filePath: String, lineCount: Int) { // 从磁盘文件中读取字符串儿,并且对文件路径进行校验 guard let input = try? String(contentsOfFile: filePath) else { return } // 将字符串儿input中的内容存储在数组中,并且每一行内容为一个元素 var lines = input.components(separatedBy: "\n") // 对文件中的内容进行校验,如果内容为空,则直接返回 guard lines.count > 0 else { return } // 对数组lines中的元素进行逆转 lines.reverse() // 取出数组lines中的元素 for i in 0 ..< min(lines.count, lineCount) { print(lines[i]) }}
上面的代码必须放在工程文件中进行测试,在Playground中是无法输出的。输入一个大于总行数10的数字,得到的输出结果如下:
阅读全文
0 0
- 从文件中读取字符串
- OC-NSString从文件中读取字符串
- 将字符串从文件中读取出来
- OC-NSString从文件中读取字符串
- PHP从文件中读取字符串问题
- jdbc中从properties文件中读取数据库连接字符串
- 从文件读取字符串总结
- 如何从文件中读取字符串到string对象
- Java 从一个文件中读取某一个特定的字符串
- 从Web.config文件中读取数据库连接的字符串
- php 从文件中读取匹配条件字符串
- 读取从a.txt中读取一个字符串,排序后写入b.txt文件中
- 基本文件的I/O --从字符串中读取字符&向字符串中写入字符
- 从数据库中读取文件
- 从文件中读取矩阵
- 从文件中读取Bitmap
- 从文件中读取数据
- 从文件中读取成绩
- 在一定范围内生成随机数
- 自己写一个pow()函数
- 交换两个数
- 判断一个整数是否为素数
- 求平方根或近似平方根
- 从文件中读取字符串
- Swift中栈的实现
- Swift中队列的实现
- Swift 4新特性研究
- mysql事务隔离级别
- mysql的锁
- python统计序列中元素出现的频率
- n2n将P2P从应用搬到网络
- 二分查找算法及python实现