在 Java 中使用长字符串(heredocs) - 可读的方法? [复制]

2023-11-24

我需要在 Java 中处理包含换行符的长字符串。这些是用于 HTML 生成的,但这里并不是最重要的。

我知道 Java 的缺陷是它所没有的heredocs。但我还可以使用其他机制:

1) 字符串级联(或 StringBuilders),可读性和复制粘贴性不太好。

2)将字符串存储在。特性文件,要么不太可读,但具有更高的可复制粘贴性。

3)将每个“heredoc”单独存储.txt文件,非常可读且可复制粘贴,但会产生一大堆 txt 文件。

4)模板引擎,例如Velocity or 自由标记- 将设计移出 Java,需要大量映射操作,这会很好,但 Velocity 语法和循环/if 功能不如 Smarty 的可读性强

每个都有优点和缺点,我想选择 3,但管理层出于纯粹的意识形态原因更喜欢 1。我希望有一些使用 Java 中的heredocs 的标准,可能是使事情变得更容易的库。对于如何使用此处文档的任何建议(有充分的论据),我将不胜感激。

Thanx


我讨厌成为“那个人”,他建议您采取与您所询问的完全不同的方法,但是您看过 Groovy 吗?它是 JVM 语言,可以与 Java 自由混合,除了一堆其他非常好的语言功能之外,它还有heredocs。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中使用长字符串(heredocs) - 可读的方法? [复制] 的相关文章

  • 如何将字符串转换为电话号码

    我一直被这个问题困扰了很长时间 这就是问题 编写一个函数 以字符串作为参数并返回电话号码 对应于该字符串作为结果 电话号码也应该是一个字符串 转换规则是标准单词到电话号码的规则 a b 或 c 映射到 2 d e 或 f 映射到 3 g h
  • 如何在 Java 中使用 SwingWorker?

    与我之前的问题相关 从Java中的另一个类调用重绘 https stackoverflow com questions 772713 call repaint from another class in java 我是 Java 新手 我看
  • Java 的 3D 场景图库?

    我正在寻找一个可靠的 Java 3D 场景图 API 它具有良好的文档 活跃的社区和允许商业使用的许可证 我排除了com sun scenegraph https scenegraph dev java net 因为它是 GPL 而且看起来
  • Netbeans Maven 项目 - 其他来源未出现

    在Netbeans Maven项目中 逻辑文件夹中的Other Source通常是一些文本 xml等文件的存储 但是 我不明白它到底何时出现以及如何在创建新项目时创建它 我尝试过 与带有 junit 测试文件的测试包相同 右键单击Proje
  • 来自 Java 的 Apache FOP 与 XSLT 2.0...?

    我在 Apache FOP 1 0 的嵌入式使用中使用 XSLT 2 0 的某些功能时遇到问题 特别是在使用 current group 时出现异常 我看到 FOP 正在使用 xalan 2 6 它引发了异常 我尝试排除 xalan 2 6
  • Java中变量的默认值

    Java 中的每个类型在声明时都有一个原始值 文章原始数据类型 http docs oracle com javase tutorial java nutsandbolts datatypes html包含原始数据类型的描述 知道了这一点
  • 从 gdb 设置 std::string 变量值?

    是否有可能 当调试器在断点处停止时 修改 std string 变量的值 而不需要采取诸如调整当前缓冲区的内存映像之类的黑客手段 例如类似于 set var mystring hello world 试试这个 经过测试并且对我有用 call
  • libc++ 中短字符串优化的机制是什么?

    这个答案 https stackoverflow com a 10319672 1805388给出了短字符串优化 SSO 的高级概述 但是 我想更详细地了解它在实践中是如何工作的 特别是在 libc 实现中 字符串必须有多短才能符合 SSO
  • 如何合并两个Jar文件

    是否可以组合两个 jar 文件 以便在小程序标签中我可以简单地执行类似的操作 archive jarjar jar jar1 jar archive jarjar jar jar2 jar instead of archive jar1 j
  • 如何与 SecretKeySpec 一样加密 ruby​​ 中的数据?

    我正在尝试使用带有 AES 算法的 Cipher 来加密 ruby 中的字符串 我有用Java编写的示例 我从这个例子中得到了帮助 并用 Java 编写了代码 但无法获得与 JAVA 中相同的输出 下面是用java编写的代码 import
  • 在 AndroidManifest.xml 中添加“@android:style/Theme.Dialog”后,我的 Android 应用程序崩溃

    实际上 我的应用程序是 Beginning Android 4 Development 一书中的示例 这非常简单 我只想将对话框主题应用于活动 MainActivity java package com example activity10
  • 使用 MVP 模式

    我有一个用 MVC 模式制作的 Web 应用程序 但是我正在尝试适应 MVP 模式 我正在使用 GWTPlatform 库 我已经将其中的一些代码迁移到了Presenter和View 然而 我还没有看到任何全面的材料来解释如何实际处理Mod
  • 如何在 JPasswordField 中启用剪切、复制?

    我注意到我无法剪切和复制JPasswordField 现在如何将密码的选定部分复制 剪切到剪贴板 有什么方法可以做到这一点吗 简单 用这个方法 JPasswordField jt new JPasswordField 20 Put clie
  • 具有接口属性的JPA实体,可能吗?

    我有以下实体 Entity public class TestCaseStep implements JPAEntity
  • 不支持的主要.次要版本 49.0

    每当我登录我的应用程序时 我都会收到以下异常 javax servlet ServletException com sun org apache xalan internal xsltc trax TransformerFactoryImp
  • Java - 强制执行已实现的方法

    我有三门课 但我有问题 它们被命名为 GameScene StageScene StageOne 我的问题是我想在 StageScene 中实现初始化 但仍然强制 StageOne 实现它 这样每当有人使用 StageOne 对象 stag
  • Eclipse:在类路径上查找资源

    eclipse 有没有办法在类路径中搜索任意资源文件名 或模式 我知道我可以使用 Navigate gt Open Type 这将扫描类路径中的类 或 Navigate gt Open Resource 它将搜索任何资源类型 但仅在我的项目
  • GridBagLayout:如何填充所有空白空间

    我有一个 JFrame 包含一些使用 gridBagLayout 3 行 一列 的 JPanel 这是我的代码 Container main container getContentPane GridBagLayout layout new
  • 注释非法 Unicode 序列

    我曾经在一个处理 unicode 处理的 Java 应用程序上工作 像往常一样 我首先编写一些代码并测试它 然后注释掉工作代码并添加一些新行 这个过程一直持续到我找到解决方案 我遇到的确切问题是注释掉非法的 Unicode 字符串 有些 u
  • 在 C# 中将字符串转换为等效的字节十六进制

    我有一个传入的字符串68016101061B4A60193390662046804020422044204000420040402060226024676DB16我想转换成0x68 0x01 0x61 0x01 0x06 0x1B 0x4A

随机推荐

  • 以编程方式获取代码的 Big-O 效率

    我想知道是否有任何自动方法可以 至少粗略地 确定给定函数的 Big O 时间复杂度 如果我绘制 O n 函数与 O n lg n 函数的图表 我想我将能够直观地确定哪个是哪个 我认为必须有一些启发式解决方案可以自动完成此操作 有任何想法吗
  • “import foo.*”不应该包含子包“foo.bar.*”吗?

    在学习 Java 时 我想到了许多教程中相当令人困惑的属性 考虑示例教程中的以下两个导入 import java awt import java awt event 第一行显然导入了 java awt 包 第二行导入了 awt 的子包 但是
  • mongoose.connection() 和 mongoose.createConnection() 之间的混淆

    我已经研究了 mongoose 三天 对这两种方法的使用有点困惑 我知道 mongoose connection 将来会被弃用 问题是 当我尝试转换 从 mongoose connection 到 mongoose createConnec
  • GCDAsyncUdpSocket 与组播发送和接收

    在第一种方法中 我创建客户端 服务器应用程序 基于样本项目 将一些数据发送到服务器 Legend sender address reciver ip port reciver port reciver address null since
  • 具有不可编辑/不可取消后缀的 EditText [重复]

    这个问题在这里已经有答案了 我为我的一项活动创建了一个布局 用户可以在其中的某些 EditText 小部件中插入值 我需要其中一些 EditText 必须具有不可编辑的后缀 如 cm mm 等 用户插入值后 我将解析这些 EditText
  • JavaScript 在 ul 中查找 li 索引

    我正在尝试通过 Javascript 中的 id 查找列表项的索引 例如 我有 5 个项目的列表 给定一个元素 我想找出它在列表中的位置 下面是我希望构建的代码 它使用 onclick 处理程序来查找正在工作的元素 然后我只需要以某种方式找
  • Sequelize targetKey 不起作用

    我正在尝试使用sequelize关联两个模型 Note 和 Resource 但是 targetKey 没有按预期工作 注意模态 module exports function sequelize DataTypes return sequ
  • 解构深层属性

    我最近开始使用 ES6解构赋值语法并开始熟悉这个概念 我想知道是否可以使用相同的语法提取嵌套属性 例如 假设我有以下代码 let cagingIt foo bar Nick Cage 我知道我能够访问摘录foo通过执行以下操作将其放入变量中
  • 使用 API 的 Ionic 3 登录身份验证 - 无法读取 null 的属性“json”

    我正在使用 API 在 Ionic 3 中进行身份验证 但在登录过程中 它显示错误 无法读取 null 的属性 json 这是我的providers gt restapi gt restapi ts import HttpClient fr
  • 客户端发送的请求语法错误 ().+Spring , RESTClient

    我正在使用 JSON 对象使用 Spring MVC 当我尝试从 RESTClient 发送 JSON 对象时 我得到 HTTP 状态 400 客户端发送的请求在语法上不正确 这是我的控制器 ObjectMapper mapper new
  • .net core (csproj) global.json 'projects' 等效项

    使用 net core project json 我曾经通过将源代码的路径添加到 nuget 包和源代码之间进行切换projectsglobal json 中的字段 完成此操作后 它将添加它可以在该路径中找到的所有项目 这些项目可以替换我引
  • 使用 Delaunay 三角剖分进行插值

    有一个形状像某种扭曲抛物面的浊点 我想使用 Delaunay 三角剖分来插值这些点 我尝试过其他技术 例如样条线 但没有设法强制执行所需的行为 我想知道是否有一种快速的方法来使用结果scipy spatial Delaunay我可以给出 x
  • “初始化 Java 工具”期间发生内部错误。在 Eclipse 启动时

    我在启动时遇到这个奇怪的错误 我的环境可能出了什么问题 这是错误 gt ENTRY org eclipse core jobs 4 2 2010 12 30 17 56 32 545 MESSAGE An internal error oc
  • 当出现平局时,熊猫如何决定排序顺序?

    熊猫0 12 0 例如 在下面的 DataFrame 中 为什么它会混淆索引 看一下 4 索引从 1 15 6 7 开始 pandas 用于决定如何排序的推理是什么 我怀疑索引会保持顺序以获得相等的值 mydf pd DataFrame n
  • 修复了 g++ 4.9.1 中奇怪的“%a”格式行为?

    编译器 来自 Nuwen 发行版的 64 位 MinGW G 4 9 1 在 Windows 8 1 下 Code ifdef INCLUDE IOSTREAM include
  • 通过 xmlstarlet 中的文本值选择节点

    我正在尝试提取 Value 节点的值 其中 Key 节点是 bash shell 中的 state
  • 拦截(并可能拒绝)Web 套接字升级请求

    我有一个 Node js 服务器 我正在向其发送 Web 套接字升级请求 此请求的授权标头包含登录信息 我需要将其与数据库条目进行比较 我不确定如何阻止 Web 套接字连接打开 直到执行数据库查询回调之后 以下是我目前正在做的事情的简化 v
  • 如何用Qt QPainter绘制线性渐变圆弧?

    我正在尝试开发自定义QProgressBar如下图所示 我创建了一个扩展 QProgressBar 的类并实现了 PaintEvent void CircularProgressBar paintEvent QPaintEvent int
  • 如何从 Java 调用 Excel 电子表格中的 VBA 代码?

    我有一个包含大量 VBA 代码的 Excel 文件 当在 Excel 中打开文档时 用户可以调用 4 个不带参数的公共子例程 这些子例程根据需要操作各个工作表中的数据 我们有一个大型 Java 应用程序 我们希望通过从 Java 环境调用宏
  • 在 Java 中使用长字符串(heredocs) - 可读的方法? [复制]

    这个问题在这里已经有答案了 我需要在 Java 中处理包含换行符的长字符串 这些是用于 HTML 生成的 但这里并不是最重要的 我知道 Java 的缺陷是它所没有的heredocs 但我还可以使用其他机制 1 字符串级联 或 StringB