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) 分割字符串? [复制]