java字符串格式化传参的三种方法

背景
大家在开发中经常遇到拼接字符串的情况,最简单直接的方式是使用“+”号拼接字符串,但是如果拼接字符过多并且无规律时,这种方式显得很不优雅,写代码的人累,看代码的人更累。
正文
如何更优雅的去拼接字符串呢?下面讲列出三种方法,效率问题暂时没测,如果不涉及到大批量字符串拼接,大家根据喜好自己选择便可。

public static void main(String[] args) {

		String name = "李三";
		int age = 30;
		double height = 1.75;

		//方法1(支持格式丰富,对应位置参数格式需要正确对应,一般用%s字符串类型即可)
		String formatStr = String.format("%s->我叫%s,今年%d岁,身高%.3f米。", "String.format",name,age,height);
		System.out.println(formatStr);

		//方法2(参数占位符需要指定下标,调整占位符个数以及位置比较麻烦)
		String formattedText = java.text.MessageFormat.format("{0}->我叫{1},今年{2}岁,身高{3}米。", "MessageFormat.format",name,age,height);
		System.out.println(formattedText);

		//方法3(需要引入第三方jar包org.slf4j.slf4j-api)
		//(不超过2个参数时,可以使用MessageFormatter.format()方法)
		org.slf4j.helpers.FormattingTuple format = org.slf4j.helpers.MessageFormatter.arrayFormat("{}->我叫{},今年{}岁,身高{}米。", new Object[]{"MessageFormatter.arrayFormat",name,age,height});
		System.out.println(format.getMessage());

	}

运行结果如下:

String.format->我叫李三,今年30岁,身高1.750米。
MessageFormat.format->我叫李三,今年30岁,身高1.75米。
MessageFormatter.arrayFormat->我叫李三,今年30岁,身高1.75米。

总结
以上三种方法各有优劣,大家根据个人喜好使用即可,效率还未进行测试,如果需要考虑效率建议使用StringBuffer或Stringbuilder。大家还有其他格式化拼接字符串的方法吗?欢迎下面评论区内留言,我会更新帖子给更多人参考学习。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值