在 Android 中使用带有自定义标签的块模板引擎

2024-04-18

我正在尝试在 android 中使用 chunk。我需要这样的东西:

Suppose,

以下是标签。

tags:{“世界”:“世界”,“c”:“丹尼斯·里奇”,“苹果”:“工作”}

Input:HELLO {{ world }},C 是由{{ c }},而java是由{{ java }}编写的,hola。

Output:HELLO WORLD,C是Dennis Ritchie写的,而java是写的通过,你好。

In short

  1. 我需要一个自定义分隔符,例如 {{ string }} IE。

    DEFAULT_TAG_START = "{{";

    DEFAULT_TAG_END ="}}";

  2. 而如果输入包含未指定的标签,则应将其替换为空。

我尝试并坚持遵循,

public String process(String msg) {

   Chunk c = new Chunk();               
   c.append(msg);
   c.set("apple", "JOBS");
   c.set("c", "Dennis Ritchie");
   c.set("world", "WORLD");
   return c.toString();
}

Chunk 模板引擎目前不支持备用标记语法。此外,标签标记内的空格不会被忽略/丢弃。

然而,这里有一个可能的桥接解决方案。只要标签名称后跟冒号,未提供的块标签将默认为空。

因此您的输入必须更改为有效的 Chunk 语法:

HELLO {$world:}, C is written by {$c:}, while java is written by {$java:}, hola.

如果您的模板语法不灵活(例如,您有一个预先存在的模板库,或者您真的不喜欢本机标记语法),您可以添加一个预处理步骤来转换{{ this }} into {$this:}在将其附加到块模板之前。

Chunk 库甚至提供了一个方便的函数来为您执行此操作(尽管如果输入与空格不一致,您可能需要重新实现它)。

import com.x5.template.TemplateSet;

...

Chunk c = new Chunk();

String template = TemplateSet.convertTags(msg, "{{ ", " }}", "{$", ":}");
c.append(template);

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

在 Android 中使用带有自定义标签的块模板引擎 的相关文章

随机推荐

  • 如何使用gmail帐户进行ssrs电子邮件订阅

    我有一份使用的报告SSRS 2008 R2 我想使用 电子邮件 选项订阅此报告 我已在报告服务管理器中配置设置 将服务器用作 smtp gmail com 并将发件人地址用作我的 gmail ID 我还尝试使用 SMTP 虚拟服务器并使用智
  • 无法打开 HTTP 流:打开文件时出错 (../cap_ffmpeg_impl.hpp:529)

    这是我的 HTTP 流的链接格式 用户 密码和地址已更改为虚拟 http username email protected cdn cgi l email protection 8093 axis cgi mjpg video cgi 该流
  • 改变图例ggplot2中的形状

    这是我的数据 head pcf IID POP PC1 PC2 PC3 PC4 PC5 shape 1 HG01113 CLM 0 00284857 0 01432160 0 01585010 0 024035900 0 01479180
  • 在 Jupyter Notebook for Anaconda3 中导入自定义 .py 文件

    我在 Mac 上的哪里存储 Anaconda3 的自定义 py 文件 以便我可以将它们作为包导入到 Jupyter Notebook 中 如果插入 您可以将它们存储在任何地方 import os import sys sys path ap
  • 微软机器人框架上的对话机器人可能吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否有可能使用微软的机器人框架建立一个对话机器人 我目前正在使用 Luis 和 Qna Maker 的组合 但它仍然是一个单一的问答机
  • 扩展C++字符串成员函数

    我需要进行不区分大小写的查找 并发现以下代码可以解决问题 bool ci equal char ch1 char ch2 return toupper unsigned char ch1 toupper unsigned char ch2
  • AngularJS 和休息服务

    我最近开始尝试AngularJS 我正在构建一个简单的 html5 应用程序来更新MySQL数据库 索引 html
  • 获取 LinkedIn 分享计数 JSONP

    使用 LinkedIn API 我想获取 URL 的分享计数 https www linkedin com countserv count share url http www linkedin com format json 但这给了我一
  • 从Java调用Android WebView中的jQuery函数?

    我正在尝试调用在 html 中定义的 javascript 函数 喜欢 WebView loadUrl javascript hoge 我可以调用非 jQuery 函数 但无法调用我在 document ready function jQu
  • IllegalStateException:getAttribute:会话已失效

    我的第一个 JSF IceFaces 版本 1 8 2 应用程序在 JBoss 5 1 0 上运行时遇到问题 一段时间后我收到一个异常 告诉我有关会话问题 这很奇怪 因为我根本不在我的代码中使用会话 以下日志显示由于此错误 来自 JBoss
  • 指向动态分配的 boost multi_array 中的类的指针,未编译

    我对 C 和 Boost 还很陌生 我想要 world 类的对象有一个名为 chunk 类型为 octreenode 的数组 以前我有一个普通的一维数组 这工作得很好 现在我尝试转向使用具有 Boost 的 multi array 功能的
  • 使用 PHP 从多选下拉列表中获取数据并插入到 MySQL 中

    我的数据库中有一个使用以下命令创建的日期列表SET数据类型 SET Mon Tue Wed Thr Fri Sat Sun 我希望用户能够使用多选下拉列表选择多天放入数据库
  • 如何在 WPF 中按名称查找样式触发器嵌入元素?

    首先 问题的核心 如果通过样式触发器将一个元素指定为 ContentControl 的内容 我似乎无法按名称找到它 现在 了解更多详细信息 我有一个面板 其布局和功能根据其数据上下文而有很大差异 这是来自错误库的错误 当该错误为空时 它是一
  • 根据合并请求触发 gitlab-ci 中的作业

    是否可以仅根据合并请求从 gitlab ci 运行作业 现在 我们有一个包含大量测试的大型整体项目 但我们只想在合并到分支 master 之前运行测试 嗯 目前还没有内置 但是您自己也不是不可能 Gitlab 允许trigger https
  • 支持 __getitem__ 的类的 Python 类型提示

    我想向一个函数添加类型提示 该函数将接受带有 getitem 方法 例如 在 def my function hasitems locator hasitems locator 我不想限制hasitems成为特定类型 例如list or d
  • 如何将查询字符串传递给backbone.js 路由

    我正在使用 Backbone js 和 jQuery mobile jQuery 移动路由被禁用 我仅将库用于 UI 除了选择页面转换之外 我一切正常 我需要将页面转换 向上切片 淡入淡出 向下滑动 传递到主干路由器 因为转换根据用户来自的
  • 获取数据工厂中单个管道执行的成本

    我正在考虑使用 Azure 数据工厂 V2 进行集成导入 并想知道是否有办法跟踪正在运行的各个管道的成本 例如 如果我有 3 个管道 代表 3 个不同的集成 是否有办法查看每个管道产生的成本 还有一种方法可以近乎实时地执行此操作 以便在一个
  • 我们应该使用 setTargetFragment() 吗?我认为 Fragments 不应该互相通信

    Android开发者教程建议我使用片段的宿主活动来传递数据等等 那么为什么有一个设置 获取目标片段方法呢 到目前为止 我的应用程序包含一个主机活动和一个片段 其中有一个启动按钮DialogFragment 其中有一个按钮可以启动另一个Dia
  • Pandas 会影响 Rapidfuzz 匹配的结果吗?

    我正在碰壁 如果我在 pandas 数据帧内运行 Rapidfuzz 以及单独运行它 它会为字符串分数相似性提供不同的结果吗 为什么地址相似度 2 和最后一行的结果不同 from rapidfuzz import process utils
  • 在 Android 中使用带有自定义标签的块模板引擎

    我正在尝试在 android 中使用 chunk 我需要这样的东西 Suppose 以下是标签 tags 世界 世界 c 丹尼斯 里奇 苹果 工作 Input HELLO world C 是由 c 而java是由 java 编写的 hola