首页 / 知识
关于字符串:等效于Java的Sprintf
2023-04-14 09:38:00

Sprintf equivalent in JavaPrintf在1.5版本中添加到Java中,但是我似乎找不到如何将输出发送到字符串而不是文件的方法(这是sprintf在C语言中的作用)。 有谁知道如何做到这一点?
查看格式及其语法 字符串是不可变的类型。您不能修改它们,只能返回新的字符串实例。 因此,使用实例方法进行格式化几乎没有意义,因为必须像这样调用它:
最初的Java作者(和.NET作者)认为,在这种情况下,静态方法更有意义,因为您不是在修改目标,而是调用format方法并传入输入字符串。
这是为什么 你可以这样做:
但是,什么也没发生,因为字符串是不可变的。 这会导致许多常见的菜鸟错误,例如:
同样,什么也没有发生,而是您必须做:
现在,如果您了解字符串是不可变的,那就很有意义了。如果您不这样做,那么您只会感到困惑。
现在毫无疑问发生了什么。 真正的问题是,这些框架的作者为什么决定一个应该是实例方法而另一个应该是实例方法?我认为,这两种方法都可以更好地表达为静态方法。 不管您的意见如何,事实是,使用静态版本时您不太容易犯错误,并且代码更易于理解(没有隐藏的陷阱)。 当然,有些方法是完美的实例方法,例如String.Length()
在这种情况下,很明显我们没有试图修改" 123",我们只是在检查它并返回它的长度。这是实例方法的理想选择。 我对不可变对象的实例方法的简单规则:
两种解决方案都可以模拟printf,但是方式不同。
...但是那真的很丑。
您可以对带有PrintStream的OutputStream进行任何处理。
可以像这样的ByteArrayOutputStream创建字符串流:
|
最新内容
相关内容
linux命令添加文件?
linux命令添加文件?,工作,简介,数据,系统,文件,命令,操作,文件名,内容,终端,linux哪些指令可以创建文件终端下键入:touch加文件名,这样就创建了linux文件中剪切命令?
linux文件中剪切命令?,位置,系统,工作,命令,发行,连续,标准,终端,文件,目录,linux怎么粘贴粘贴与复制快捷键 Shift + Ctrl + c:复制。Shift + Clinux存储文件命令?
linux存储文件命令?,系统,地址,工作,命令,软件,电脑,标准,底部,信息,文件,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命令linux保存命令文件?
linux保存命令文件?,系统,状态,命令,文件,第一,管理,电脑,模式,编辑,终端,linux下vi命令编辑器怎样编辑及保存退出?先按ESC进入Command模式,然删除linux文件命令?
删除linux文件命令?,名称,不了,文件夹,命令,文件,目录,方法,指令,子目录,选项,Linux删除文件的命令?linux 删除文件指令:输入rd盘符名:\文件夹linux文件录入命令?
linux文件录入命令?,系统,命令,网络,标准,时间,密码,名字,管理,文件,文件夹,Linux必学的60个命令-文件处理1、安装和登录命令:login、shutdownlinux命令移除文件夹?
linux命令移除文件夹?,命令,文件夹,通用,不了,数据,名称,档案,系统,文件,目录,删除文件夹中所有文件的linux命令(创建和删除文件和文件夹的lin在linux文件后加命令?
在linux文件后加命令?,系统,工作,命令,工具,电脑,基础,管理,情况,第一,简介,Linux文件相关命令命令一:cat cat命令应该是在Linux中查看文件内容linux命令删除文件夹?
linux命令删除文件夹?,系统,名称,环境,文件夹,不了,命令,文件,数据,档案,目录,删除文件夹命令linuxLinux的文件和目录的删除命令有:rm、rmdir、linux命令看文件编码?
linux命令看文件编码?,状态,系统,文件,工具,名称,数据,命令,格式,汉字,以下,Linux如何使用enca查看文件编码并转换1、在Linux中查看文件编码可linux命令是什么语言?
linux命令是什么语言?,系统,环境,代码,传播,管理,语言,操作系统,源码,自由,部分,dos和linux的命令行里面用的是什么语言?1、DOS/Windows/Linuxlinux的fd命令作用?
linux的fd命令作用?,管理,工作,信息,系统,软件,服务,有限,标准,电脑,设备,【fd】Linux文件描述符1、,已经分配的文件描述符数;2,已经分配但未使用