我是一名大学生,正在尝试做一个学校的项目,但似乎遇到了一些障碍。我有一个文件夹,里面列出了我所做的不同类别的项目。我知道如何阅读这个文件:
class Inventory(var fileName: String) {
override fun toString(): String {
return """
$fileName
""".trimIndent()
}
init {
val myList = mutableListOf<String>()
File(fileName).useLines { lines -> myList.addAll(lines) }
myList.forEachIndexed { i, line -> println("${i}: " + line) }
if (lines[1] = --column1--){
put line in a class object
}
}
}
我尝试使用Lines调用文本文件中的特定行,基本上就是说if(line[1] =“the first column”)do 'this',但是Lines不允许我这样做。我该如何使Lines工作呢?或者有没有更简单的方法先调用特定行,然后再调用列?
我们的目标是在文本中找到一个特定的行,然后把它放到一个特定的类对象中,我知道怎么把它放到一个类对象中,我只是想调用这个特定的行。
谢谢你的帮助!
1条答案
按热度按时间zzoitvuj1#
我希望我正确地理解了这个问题...您可以将代码简化为:
请注意,这段代码效率很低,因为您只读取了整个文件的第一行,这个想法只是给予您一个如何操作它的示例。
此外,您不需要使用字符串格式来返回文件名,因此我对您的
toString
方法进行了一些简化最后但并非最不重要的一点是,请记住
lines
是一个变量,它是在类的构造函数中的匿名函数中定义的,因此一旦函数完成就不可用。为了解决这个问题,我定义了类成员lines
,并在创建类时初始化它。最后但并非最不重要的是,我从可变列表切换到不可变列表,因为它更安全,而且在这里您实际上不需要改变列表:)