如何使用转义序列打印新行

时间:2017-05-03 02:38:21

标签: java string

所以我正在编写一个使用BNF语法生成句子的程序。所以,让我们说我有一个语法文件:

<s>::=<np> <vp> 
<np>::=<dp> <adjp> <n>|<pn> 
<dp>::=the|a      
<adjp>::=<adj>|<adj> <adjp> 
<adj>::=big|fat|green|wonderful|faulty|subliminal|pretentious 
<n>::=dog|cat|man|university|father|mother|child|television 
<pn>::=John|Jane|Sally|Spot|Fred|Elmo 
<vp>::=<tv> <np>|<iv> 
<tv>::=hit|honored|kissed|helped 
<iv>::=died|collapsed|laughed|wept

我要求它打印一个随机的句子,它会去选择一个选项,让我们说,然后说它选择约翰。然后我们就完成了,因为我们打了一个终端,然后我们去了。说它去,然后选择笑。我们会得到约翰笑的句子。

我想做的是添加一个p。意义段落。我的段落公式将与

类似
<p>::=<s> \n <s> | <p>

我希望\ n显示为新行,但我的程序将其作为\ n打印在终端中,而不是将其视为转义序列!我的程序所做的是它接收每个令牌并将其变成一个字符串,如果它是一个终端,那就是。为什么它不起作用? 注意:我无法显示我的计划的实施细节。

2 个答案:

答案 0 :(得分:0)

<new_line> ::= '\x0A'

然后你可以使用它

答案 1 :(得分:0)

我可以修改我的程序以在BNF行中读取char []数组。这将允许它解释转义序列。然后我可以将char数组转换为字符串并将其打印出来。我希望这可以帮助任何遇到类似问题的人。