在Java中使用String.format和字符串连接有明显的区别吗?

我倾向于使用String.format,但偶尔会滑动并使用串联.我在想是不是一个比另一个好.

在我看来,String.format在"格式化"字符串方面给了你更多的力量;连接意味着您不必担心意外地添加了一个额外的%s或丢失了一个.

String.format也更短.

哪一个更具可读性取决于你的头脑是如何工作的.

推荐答案

我建议使用String.format()是更好的做法.主要原因是使用从资源文件加载的文本可以更容易地本地化String.format(),而如果不为每种语言生成具有不同代码的新可执行文件,则无法本地化串联.

如果你计划让你的应用程序可以本地化,你也应该养成为格式标记指定参数位置的习惯:

"Hello %1$s the time is %2$t"

然后可以对其进行本地化,并交换名称和时间标记,而无需重新编译可执行文件以说明不同的顺序.对于参数位置,您也可以重复使用相同的参数,而无需将其传递到函数中两次:

String.format("Hello %1$s, your name is %1$s and the time is %2$t", name, time)

Java相关问答推荐

编译期间错误(Java 0000)Android .Net MAUI

使用Apache Poi MQLSlideShow,在XSLFTable表中,我们可以在文本段落后面的每个单元格中包含圆角矩形吗?

具有默认分支的JUnit代码覆盖率切换声明

Javascript更新alert 可扩展内容样式与CSS—按钮更多/更少

如何在SystemiccationRetryListenerSupport中获得类级别的spring retryable annotation中指定的标签?

如何在Javascript中设置文本区域圆角的样式

如何获得执行人?

在Java中,如何按一个属性升序,然后按另一个属性降序对对象列表进行排序?

Com.example.service.QuestionService中的构造函数的参数0需要找不到的类型为';com.example.Dao.QuestionDao;的Bean

由于 list 中的权限错误,Android未生成

PDFBox未加载内容

Mac上的全屏截图在使用JavaFX时不能正常工作吗?

格式中的特定回录键-值对

如何在Microronaut中将 map 读取为 map

如何为JavaFX Spring Boot应用程序制作Windows/MacOS/Linux安装程序

如何用内置Java从JavaFX应用程序中生成.exe文件?

如何对存储为字符串的大数字数组进行排序?

如何使用Java ZoneID的区域设置?

Eureka客户端无法使用用户/通行证注册到Eureka服务器

java中的网上购物车解析错误