使用String.format从右边获取字符串

时间:2018-09-26 17:23:54

标签: java android string android-studio formatting

我有这个字符串

  

B0018-00000102

我只需要使用 String.format

来获取最后8个字符(00000102)

可以用 substring 进行拆分,我知道,但是我需要用 String.format 吗?

我用“%。8s”

进行了测试
String.format("%.8s", "B0018-00000102")

但它从左开始

我需要类似“%。8s” 的格式,但从右开始

2 个答案:

答案 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