Freemarker - 基于换行符分割字符串

Posted

技术标签:

【中文标题】Freemarker - 基于换行符分割字符串【英文标题】:Freemarker - Split String based on New Line 【发布时间】:2021-09-23 16:15:25 【问题描述】:

我想根据行拆分字符串,这意味着在单独的行上分隔内容。

Example -

Hello I
am
Bill Gates

Final Array should be ["Hello I","am","Bill Gates"] 

我尝试使用 split 函数并传递 '\n' 但它不起作用。

<#assign finalValue = body?split('\n') />

在这种情况下,我没有得到想要的结果。你能帮我解决这个问题吗?

更多详情,请阅读下文 -

我正在尝试从地址中获取国家/地区。国家总是在地址的最后一行,所以我试图根据行拆分地址,从而获取最后一行是所需的输出。

Example -
ABC, Industries Ltd.,
XYZ Street,
United States.

所以在这里,我使用 split 函数作为地址?split("\n") 但它不起作用。

所以,我尝试使用 Developers Console 进行拆分,它在那里运行良好。使用了 split() 函数。

不过,在获取地址值时,我将其作为 -

ABC, Industries Ltd., \n XYZ Street, \nUnited States.

因此,考虑使用 \n 进行拆分,但它不起作用!

【问题讨论】:

你试过“\r”(回车)、“\r\n”(回车和换行)、“”(html换行元素)、“char(10 )”(SQL 换行)或“char(13)”(SQL 回车)而不是“\n”(换行)。我不明确知道哪个在 NetSuite 中有效,但它们只是制作空格/换行符的不同选项 当我尝试使用控制台获取我想要拆分的值时,这是我获取字符串的格式 - “Hello I \n am \nBill Gates”。所以基本上我有这个字符串,需要根据'\ n'来分割它。我尝试使用 '\r' 和 '\r\n' 但它们都不起作用。 你能展示你正在使用的实际模板吗,你得到了什么结果? @ddekany 我已在问题中添加了详细信息。请通过它。 @Jerry2109 您仍然没有显示生成该输出的模板,只是一个分配。另外我不确定为什么在输出中显示文字 \n-s 而不是实际的换行符。 【参考方案1】:

通常的问题是使用了 3 种换行符:\r\n(Windows 和一些 Web 协议)、\n(其他所有协议)和很少见的\r(旧 Mac)。适用于所有人的拆分是?split(r'\R', 'r')。请注意R\R 中的大写字母。这是一个正则表达式结构,自 Java 8 起就支持。

【讨论】:

当我尝试使用控制台获取我想要拆分的值时,这是我获取字符串的格式 - “Hello I \n am \nBill Gates”。所以基本上我有这个字符串,需要根据'\ n'来分割它。我尝试使用 '\r' 和 '\r\n' 以及 [r'\R', 'r'] 但它们都不起作用。

以上是关于Freemarker - 基于换行符分割字符串的主要内容,如果未能解决你的问题,请参考以下文章

用换行符分割字符串[重复]

如何在 Java 中用逗号和换行符 (\n) 分割字符串? [复制]

Python入门-2编程基本概念:17字符串-split()分割-join()合并-join()效率测试

读文件内容,分割字符串,去除空格,换行,回车,制表符

java分割字符串

java分割字符串