MessageFormat之拒绝字符串拼接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_30160727/article/details/78075687

在开发项目过程中,经常会碰到拼接字符串的场景。尤其是上传文件时,文件保存的路径都是要自动生成的,这样就会拼接路径。
1.普通解决方法
假设文件路径为d:/files/doc/learn,对于该路径的拼接,我们经常有以下两种拼接方式:

这里写图片描述

第二种就是通过StringBuilder对象方法:
这里写图片描述

以上两种方法都是很麻烦的,代码也不少,有的时候还容易拼错。下面我们介绍一种便捷的方法,利用java.text包下的MessageFormat类中的方法。
2.推荐的方法
在MessageFormat类中提供了format方法,其可以对字符串进行连接处理。废话少说,直接抛出实例:

这里写图片描述

beforePath作为afterPath的预对象,通过调用MessageFormat.format方法将”d:/files”,”/doc”,”/learn”依次映射到beforePath索引位置。映射关系如下表:

这里写图片描述

format方法参数列表中,从第二个开始是要映射的字符串,我们也可以使用数组,预先将映射的多个字符串放在数组中:

这里写图片描述

上面两种方式打印的结果都是
这里写图片描述
除了对字符串参数进行映射,我们也可以处理非字符串类型。如果上面的数组params元素都是浮点类型,我们可以对浮点数字取有效位操作。

这里写图片描述

{0,number,#.#}就是取出数组params的第一个元素,且保留一位小数。其他的依次类推。
这里有几个需要注意的地方:

1.数组prams的类型必须是对象,不能是基本数据类型
2.{0,number,#.#}中的number不区分大小写,但是不能不写。
打印结果
这里写图片描述
总结:本文主要介绍一种更加便捷的字符串连接方法,MessageFormat获取一组对象,格式化这些对象,然后将格式化后的字符串插入到模式中的适当位置。另外,其还可以对数字格式化操作,功能实在强大。jdk中存在很多有用的api,其可以实现我们平时自己去实现的功能。如果想成为优秀的java工程师,常用的api必须要掌握的。

猜你喜欢

转载自blog.csdn.net/sinat_30160727/article/details/78075687
今日推荐