为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法让程序将文本文件中的“\n”识别为换行代码?

有没有办法让程序将文本文件中的“\n”识别为换行代码?

幕布斯7119047 2021-08-19 19:00:11
我一直在用 Java 创建一个游戏,我曾经直接在我的代码中编写所有游戏中的文本,如下所示:String text001 = "You're in the castle.\n\nWhere do you go next?"但是最近我决定把所有的游戏内文本写在一个文本文件中,并试图让程序读取它们并将它们放入一个字符串数组中,因为文本数量增加了很多,这使我的代码变得非常长。除了一件事外,阅读进展顺利。我在对话中插入了换行符,虽然当我直接在我的代码中编写代码时代码工作正常,但当我尝试从文本文件中读取它们时,它们不再被识别为换行符代码。它应该显示为:You're in the castle.Where do you go next?但现在显示为:You're in the castle.\n\nWhere do you go next?该代码不再将“\n”识别为换行符代码。这是代码:import java.io.File;import java.util.Scanner;import java.util.StringTokenizer;public class Main {    public static void main(String[] args) {        new Main();    }    public Main() {        Scanner sc;        StringTokenizer token;        String line;        int lineNumber = 1;        String id[] = new String[100];        String text[] = new String[100];        try {            sc = new Scanner(new File("sample.txt"));            while ((line = sc.nextLine()) != null) {                token = new StringTokenizer(line, "|");                while (token.hasMoreTokens()) {                    id[lineNumber] = token.nextToken();                    text[lineNumber] = token.nextToken();                    lineNumber++;                }            }        } catch (Exception e) {        }        System.out.println(text[1]);        String text001 = "You're in the castle.\n\nWhere do you go next?";        System.out.println(text001);    }}这是文本文件的内容:castle|You're in the castle.\n\nWhere do you go next?inn|You're in the inn. \n\nWhere do you go next?如果有人告诉我如何解决这个问题,我将不胜感激。谢谢你。
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

只需使用

text[lineNumber] = token.nextToken().replace("\\n", "\n");

\n文本文件本身没有什么特别之处。它只是一个\,后跟一个\n

仅在 Java(或其他语言)中定义此字符序列 - 在字符或字符串文字中 - 应解释为0x0a(ASCII 换行符)字符。

因此,您可以将字符序列替换为您希望将其解释为的字符序列。


查看完整回答
反对 回复 2021-08-19
  • 1 回答
  • 0 关注
  • 398 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信