首页 > 解决方案 > 从原始 txt 文件中读取字符串

问题描述

我有一个带有分隔符的原始 txt 文件,用于分割文本。要接收文本,我使用扫描仪:

int textid = getResources().getIdentifier(word, null, this.getPackageName());
            Scanner ch = new Scanner(getResources().openRawResource(textid));

打开的文件是正确的。当我开始接收信息时,我需要阅读它,直到得到“$”。

            while (ch.hasNext()) {
                    str = ch.next();
                    boolean flag = (str.equals("$"));
                    while (!(str.equals("$"))) {
                        str = ch.next();
                    }

问题是当 str 等于“$”(通过断点检查)标志等于“false”时。但是,如果我初始化 String m = "$" 并检查flag = m.equals("$")标志等于 "true"。也尝试使用str != "$",但没有帮助。我的猜测是,scanner.next() 返回另一种类型,但它似乎很奇怪。

标签: javaandroidstringjava.util.scanner

解决方案


当您的代码读取 a"$"时,它将中断内部循环。当它从外部循环开始时,您ch.next()再次调用,它会覆盖之前"$"str. flag这可能是设置为的原因false"$"只有当它是文件中的第一件事时,它才会检测到。

此外,您可能想再次检查ch.hasNext()内部循环。


推荐阅读