import java.util.Map;
public class StringFormatUtil {
private StringFormatUtil(){}
public static String substitute(String tepl, Map<String, String> params) {
String text = tepl;
for(Map.Entry<String, String> entry:params.entrySet()){
String key = entry.getKey();
text = text.replaceAll("\\{" + key + "}", safeRegexReplacement(entry.getValue()));
}
return text;
}
private static String safeRegexReplacement(String replacement) {
if (replacement == null) {
return replacement;
}
return replacement.replaceAll("\\\\", "\\\\\\\\").replaceAll("\\$", "\\\\\\$");
}
}
使用方法:
static String sqlTemplete = "insert into tree_node (TREE_NODE_ID, OBJECT_ID, TREE_NODE_NM, TREE_NODE_POSITION, TREE_NODE_TYPE_CODE, UPPER_TREE_NODE_ID) values('{nodeId}','0','{nodeNm}','0','8','{upperNodeId}');";
Map<String, String> params = new HashMap<String, String>();
params.put("nodeId", String.valueOf(1));
params.put("upperNodeId", String.valueOf(2));
params.put("nodeNm", String.valueOf(3));
System.out.println(StringFormatUtil.substitute(sqlTemplete, params));
分享到:
相关推荐
下面通过一段代码来演示如何使用`Map`集合: ```java public class MapDemo { public static void main(String[] args) { Map, String> map = new HashMap(); method(map); } public static void method(Map...
在Python编程中,字符串处理是一项基础且重要的任务。在某些场景下,我们可能需要批量替换或修改字符串中的多个字符。...通过阅读和运行这段代码,你可以加深对Python字符串处理的理解,掌握批量替换字符串字符的方法。
在这个场景下,Reducer需要维护当前遇到的最大值和最小值,每次接收到新的键值对时更新它们。 4. **编写驱动程序**:驱动程序设置输入和输出路径,创建Job对象,设置Mapper和Reducer类,然后提交Job给Hadoop集群...
本资源提供的是一段纯Java后端代码,主要用于实现短信发送功能,特别关注的是模板短信的处理。该代码基于SpringBoot框架,利用RabbitMQ作为消息中间件,这使得系统具有高度的可扩展性和异步处理能力。 首先,...
构造方法:WordTemplateUtil(String fileName) filename:提供需要替换的模板或文档的路径 public void insertTextByFormField(String formFieldName, String text) formFieldName:表单域名称。text:要插入的文本...
请注意替换`YOUR_API_KEY`、`LATITUDE`、`LONGITUDE`和`ZOOM_LEVEL`为实际值。 一旦地图加载完成,我们就可以在地图上添加文本标注了。Google Maps API提供了一个`google.maps.Marker`对象用于此目的。在C#中,我们...
这段C++代码定义了两个函数,`ReadINI`用于读取INI文件,将数据存储到`std::map`中;`WriteINI`用于写入数据到INI文件,接受一个已经填充好的`std::map`对象。 5. **INI文件的应用实例** - 应用程序配置:许多...
【C++经典代码大全 清晰版】是一个针对C++初学者精心编纂的资源集合,旨在帮助新手快速掌握C++编程语言的核心概念和技术。这个压缩包文件包含了多个示例程序,每个都代表着C++编程中的重要知识点。下面将详细阐述...
以下是对标题、描述、标签以及部分内容中提及的知识点进行详细阐述: ### 字符串操作:编辑距离与动态规划详解 #### 一、编辑距离简介 编辑距离(Edit Distance)是一种度量两个字符串相似度的方法,通常用于衡量...
在某些情况下,为了保持数据的整洁和避免后端处理null值时出现异常,我们需要在数据传输前过滤掉这些null值。本教程将详细介绍如何使用Spring MVC的拦截器来实现这一功能。 首先,了解拦截器(Interceptor)在...
- putAll(Map map):将另一个Map的所有键值对复制到当前Map中,要求Key和Value类型匹配。 - remove(Object k):根据Key删除对应的键值对。 - get(Object k):根据Key获取对应的Value。 - size():返回Map中键值...
这种灵活性和安全性是由类型参数提供的,类型参数可以理解为一种类型占位符,在实际使用时会被具体的类型替换。 #### 泛型在集合框架中的应用 在Java集合框架中,泛型的引入极大地提高了代码的类型安全性和可读性...
这里`#{name}`和`#{minAge}`就是占位符,iBatis会在执行时将它们替换为实际的值。 此外,资源中的"按条件查询三国数据库"可能包含了一个基于三国历史数据的示例,这有助于开发者更好地理解和实践iBatis的条件查询...
`Map`则是一个键值对的集合,每个键都是唯一的,用于存储一对或多对键值。在Java中,`HashMap`是最常用的`Map`实现。 在这个问题中,`list`可能用于存储原始字符串的每个字符,以便遍历和处理;而`map`则可以用来...
`E` 可以理解为一个占位符,当实际使用该泛型类型时,会用具体的类型来替换它。 ##### 2.3 泛型方法 除了泛型类型外,Java 5.0 还引入了泛型方法。泛型方法是在方法签名中包含类型参数的方法。这样的方法可以在...
《基于C++图书管理系统设计与代码实现》是一个深入探讨如何使用C++编程语言构建图书管理系统的项目。在本文中,我们将详细讨论这个系统的设计思路、关键功能实现以及C++编程技术的应用。 首先,图书管理系统的核心...
例如,ArrayList就是泛型的一个实例,其中T代表一个类型参数,实际使用时可以替换为具体的类型如String或Integer。 匿名内部类是在Java中定义一个新的类而无需为其命名的一种方式,通常用于实现接口或者继承类,...
本资源"Java常用代码和方法"提供了一系列的示例和详细注释,旨在帮助初学者更好地理解和运用Java的核心概念。以下是一些关键的知识点,它们通常会在Java开发中频繁出现: 1. **基础数据类型与封装类**: Java提供...
在描述的场景中,我们有一个用于SQL查询字符串的变量`result`,并且有一个Map `sysParams`来存储占位符和它们的替换值。传统的遍历Map并替换`result`中的占位符的方法如下: ```java String result = "select * ...
这段代码将打印出: ``` {"name":"John", "age":30, "city":"New York"} ``` 3. **访问和修改JSON对象** `JSONObject`提供了多种方法来访问和修改JSON对象中的键值对。例如,你可以使用`get()`方法获取指定键...