首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JEXL字符串中的换行

JEXL字符串中的换行
EN

Stack Overflow用户
提问于 2021-03-05 19:00:04
回答 1查看 375关注 0票数 3

我在Java中以标准方式使用JEXL:

代码语言:javascript
复制
var script = new JexlBuilder().create().createScript(jexlScript);
var jexlContext = new MapContext(); 
var returnString = (String) script.execute(jexlContext));

假设jexScript看起来像:

代码语言:javascript
复制
var paramA = 'AAAA';
var paramB = 'BBBB';
var command = paramA + '\n' + paramB;
return command;

产出如下:

代码语言:javascript
复制
AAAA\nBBBB

我的问题是:如何引入新行 char来正确格式化这篇文章?或任何其他在Jexl中创建字符串中获得新行分隔的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-05 03:00:37

我是Apache JEXL的新手,但我发现了以下几种方法:

1.使用多行字符串

代码语言:javascript
复制
var paramA = 'AAAA';
var paramB = 'BBBB';
var command = `${paramA}
${paramB}`;
return command;

多行字符串格式中的文字换行符(用背面分隔)将被保留。使用变量替换引入其他变量。

2.使用上下文将换行符作为变量注入。

在Java代码中,填充上下文:

代码语言:javascript
复制
var jexlContext = new MapContext(); 
jexlContext.set("newline", "\n");

然后在脚本中使用它:

代码语言:javascript
复制
var paramA = 'AAAA';
var paramB = 'BBBB';
var command = paramA + newline + paramB;
return command;

3.使用Java风格的Unicode转义

这是一个存在的特性,但在版本3.2 (JEXL-331)之前是没有文档的。您可以在字符串文本中使用Java样式的Unicode转义。\n的十六进制值为0x0a,因此请使用:

代码语言:javascript
复制
var command = paramA + '\u000a' + paramB;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66498157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档