【发布时间】:2016-04-28 04:09:15
【问题描述】:
截至目前,我有一个名为 lol.txt 的文本文件,我的代码在文件中打印出带有“|”的一行每个单词之间。例如,第一行打印“hello|howdy|hola”,我想在管道上拆分它,以便我可以从该行随机选择一个问候语。我对为什么我的分隔符不起作用以及如何将其转换为数组感到困惑,这样我就可以获取第一行的索引,所以 greeting[0] 会打印“hello”。
Scanner sc = new Scanner(System.in);
// open file and prompt for file name
System.out.print("Enter a file name: ");
String fileName = sc.nextLine();
File infile = new File(fileName);
Scanner readIt = new Scanner(infile);
//prints <greeting> of text file. Ex. hello|howdy|etc...
String greeting = readIt.nextLine();
greeting.split("|");
System.out.println(greeting);
【问题讨论】:
-
如果你在说我认为你在说的话,那你就倒退了。 BNF 描述了您要使用的语法。获得 BNF 后,您编写一个程序来解析该格式的语法。因此,您首先需要 BNF(来自您个人),然后根据该 BNF 读取
lol.txt文件。 -
@markspace 是的,我在 lol.txt 中有我需要的语法格式。我对如何解析我猜的语法感到困惑
-
@markspace 我根据自己的进度调整了问题
-
greeting.split("|")不会改变greeting,但会返回一个包含拆分结果的新数组。因此,您应该分配结果(例如String[] greetingSplit = greeting.split("|");)并将该变量用于您的随机选择器。
标签: java arrays split text-files delimiter