我有这个字符串
B0018-00000102
我只需要使用 String.format
来获取最后8个字符(00000102)可以用 substring 进行拆分,我知道,但是我需要用 String.format 吗?
我用“%。8s”
进行了测试String.format("%.8s", "B0018-00000102")
但它从左开始
我需要类似“%。8s” 的格式,但从右开始
答案 0 :(得分:0)
我将再次非常仔细地阅读Oracle文档,并且我相信他们的设计是惯用的,因此无法使用String.format()来实现所需的功能。
https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
答案 1 :(得分:0)
即使String.format
可以做这种事情,您也不应该这样做。
该方法用于格式化输出,而不是提取信息。格式化输出包括格式化列输出的功能,因此支持截断输出是有意义的,因为太长的值会破坏格式。
但是,%.8s
之类的格式并不是要 substring 一个值,它只是为了限制输出以防止溢出。尽管操作相同,但意图不同。
如果要提取前8个字符,请使用substring(0, 8)
。
如果需要限制格式化输出,请使用%.8s
。