首页 > 解决方案 > 为什么 kotlin 中的 readfile 和 string 这两种类型不同?

问题描述

我想读取文本文件并使用该字符串。所以我使用原始文件夹并写了一个 YouTube URL。

当我阅读.txt文件并尝试转移到下一个活动时,该 URL 不起作用。

因此,我将文字与文本文件字符串进行了比较。但类型不同。

我不明白这一点。我怎么解决这个问题?

音乐文件.txt

lLZLWUz2veg

主要活动

var music_url = readFile(musicfile).split("\n")
var url = music_url.get(item.id)
var isEquals = music_url.get(item.id).equals("lLZLWUz2veg")
Log.d("Tag","equals : "+isEquals)
Log.d("Tag","url : "+url)
Log.d("Tag","literal : lLZLWUz2veg")

结果

D/Tag: equals : false
D/Tag: url : lLZLWUz2veg
D/Tag: literal : lLZLWUz2veg

标签: android

解决方案


由于您没有声明类型,请确保您使用的是结构平等('==')

https://medium.com/@agrawalsuneet/equality-in-kotlin-and-equals-d8373ef529f1

检查您的 URL 是否在开头或结尾不包含换行符。您将无法通过当前的日志语句来判断。

IE:

val music_url = readFile(musicfile).split("\n")
val url = music_url.get(0) // I assume its 0? makes the question clearer
val literal = "lLZLWUz2veg"
val isEquals = url == literal

Log.d("Tag", "equals : $isEquals")
Log.d("Tag", "url : [$url]") // Putting [] characters either sides will expose new lines
Log.d("Tag", "literal : [$literal]")

推荐阅读