一段时间以来,我一直在用Java创建游戏,而我以前经常在我的代码中直接编写所有游戏文本,如下所示:
String text001 = "You're in the castle.\n\nWhere do you go next?"
但是最近我决定将所有游戏中的文本写到一个文本文件中,并试图让程序读取它们并将它们放入String数组,因为文本数量增加了很多,这使我的代码变得难以置信长。除了一件事,阅读效果很好。我已经在对话框中插入了换行代码,尽管当我直接在代码中编写换行代码时,该代码可以正常工作,但是当我尝试从文本文件中读取换行代码时,它们不再被视为换行代码。
应该显示为:
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?
如果有人告诉我如何解决此问题,我将不胜感激。谢谢。
答案 0 :(得分:3)
只需使用
text[lineNumber] = token.nextToken().replace("\\n", "\n");
文本文件中的\n
本质上没有什么特别之处。它只是\
,后跟\n
。
仅在Java(或其他语言)中,定义此字符序列(以char或字符串文字形式)应解释为0x0a
(ASCII换行符)。
因此,您可以将字符序列替换为您希望将其解释为的字符序列。