字符串模版替换的方法MessageFormat.format(String pattern, Object ... arguments)

MessageFormat.format(String pattern, Object ... arguments)

MessageFormat.format(NewOrderConstant.PAY_SCHEMA,
        URLEncoder.encode(MessageFormat.format(NewOrderConstant.RESULT_SCHEME, String.valueOf(orderId)), HTTP.UTF_8),
        URLEncoder.encode(MessageFormat.format(NewOrderConstant.RESULT_SCHEME, String.valueOf(orderId)), HTTP.UTF_8),
        URIUtil.encodeQuery(shopBO.getShopName(), HTTP.UTF_8),
        this.toStringWithRemoveTrailingZeros(huiAmount),
        NewOrderConstant.BIZ_ORDER_TYPE_OEDER,
        String.valueOf(orderId),
        String.valueOf(shopId),
        noHuiAmount == null ? "0" : this.toStringWithRemoveTrailingZeros(noHuiAmount),
        (shopBO.getType() == ShopTypeCode.IntellRestaurant_PRE_PAY || shopBO.getType() == ShopTypeCode.HBT_PRE_PAY) ? 1 : 0,
        URLEncoder.encode("{supportVoucher:" + shopBO.getHuiType() + "}", HTTP.UTF_8));

以下为代码实现:

其实这个实现就是使用了MessageFormat这个类;

String content = "ab,cc,{名称},{密码},{日期},dd,ff";

String array[] = {userName, password, format.format(new Date())};
content = MessageFormat.format(content, array);

? 解释如下:

? content 中需要被替换的就是{}中的参数,array数组中存放的是对应的要替换的参数;使用MessageFormat方法的时候,需要要将这些参数的个数匹配正确,并且数序要指定,否则匹配出错。这样就实现了参数的替换。很简单,也很死板。

MessageFormat:出自java.text包中;

我们可以自己打开jdk源代码读一下他的实现方式。

本文转自https://blog.csdn.net/qq_20906499/article/details/51436732

原文地址:https://www.cnblogs.com/snake107/p/12047295.html

时间: 2024-08-25 09:27:04

字符串模版替换的方法MessageFormat.format(String pattern, Object ... arguments)的相关文章

如何进行字符串循环替换的方法?

答案:比如提取了HTML代码中的所有图片,现在要进行批量替换过去改如何操作呢?遍历提取出来的那个数组,得到一个tmp:然后将tmp在赋值给strContent; foreach (var item in arr) { dr = dt.NewRow(); string ext = CommonSpace.Conmmon.GetExt(item); string newName = i + ext; tmp = strContent.Replace(item, newName);//替换得到一个结果

字符串模板替换方法 MessageFormat.format

String content = "ab,cc,{名称},{密码},{日期},dd,ff"; String array[] = {userName, password, format.format(new Date())}; content = MessageFormat.format(content, array); 解释如下: content 中需要被替换的就是{}中的参数,array数组中存放的是对应的要替换的参数:使用MessageFormat方法的时候,需要要将这些参数的个数

Java魔法堂:初探MessageFormat.format

一.前言 刚开始从.net的转向java的时候总觉得 String.format 用得不习惯,希望格式模版会这样 {0}, this is {1}'s cat.{1},this is {0}'s dog. 而不是 %1$s,this is %2$s's cat.%2$s,this is %1$s's dog. .后来发现 java.text.MessageFormat.format 可以满足我这个小小的愿望. 二.静态方法 java.text.MessageFormat.format    方法

Java 中 MessageFormat.format 用法

MessageFormat本身与语言环境无关,而与用户提供给MessageFormat的模式和用于已插入参数的子格式模式有关,以生成适用于不同语言环境的消息. MessageFormat模式(主要部分): FormatElement: { ArgumentIndex }:是从0开始的入参位置索引. { ArgumentIndex , FormatType } { ArgumentIndex , FormatType , FormatStyle } FormatType: :指定使用不同的Form

Spirng.net 替换任意方法

1.首先上客户端代码 static void Main(string[] args)        {            IApplicationContext ctx = ContextRegistry.GetContext();            Console.WriteLine("替换方法");            UserDao dao = (UserDao)ctx.GetObject("userDao");            Console

MessageFormat.format 字符串的模板替换

项目目前在消息的模版,模版中需要替换很多参数,比方说"用户名","日期"等等.不过目前没有想到更好的替换参数的方法,所以目前只能使用一个比较简单的方式来实现.这个方式太死板,参数对应必须要在代码中写死,若是在模版中多加一个参数,那么就要修改Java类中的代码,非常不好.临时凑合一下,以后想到更好的方式,在来实现.以下为代码实现: 其实这个实现就是使用了MessageFormat这个类; String content = "ab,cc,{名称},{密码},{

String.format(String format, Object... args)方法详解

很多次见到同事使用这个方法,同时看到https://blog.csdn.net/qq_27298687/article/details/68921934这位仁兄写的非常仔细,我也记录一下,好加深印象. 这个是从java5的时候添加进去的方法. /** * Returns a formatted string using the specified format string and * arguments. * * <p> The locale always used is the one r

string 字符串 的一些使用方法

Java语言中,把字符串作为对象来处理,类String就可以用来表示字符串(类名首字母都是大写的). 字符串常量是用双引号括住的一串字符. 例如:"Hello World" String表示字符串变量 String用来可以创建字符串对象,String使用示例: 1 String s=new String() ;   //生成一个空串 2 String s1="Hello World"; //声明s1为字符串"Hello World"的引用 1 S

java中String字符串的替换函数:replace与replaceAll的区别

例如有如下x的字符串 String x = "[kllkklk\\kk\\kllkk]";要将里面的“kk”替换为++,可以使用两种方法得到相同的结果 replace(CharSequence target, CharSequence replacement)       ——          x.replace("kk", "++") replaceAll(String regex, String replacement)       ——