使用 String.format 从整数中删除特定数字

Posted

技术标签:

【中文标题】使用 String.format 从整数中删除特定数字【英文标题】:Using String.format to remove particular digits from an integer 【发布时间】:2017-11-10 11:59:11 【问题描述】:

假设我们有一个数字

int number = 1234

我想使用格式将最后两位数字提取为字符串34。如何做到这一点?

我尝试过:

String extraction = String.format("%d", number)

但这只是复制整个数字。我对格式化程序使用的语法不熟悉,似乎无法弄清楚可以进入数字字符(或字符串,就此而言)并将它们拉出来的语法。我找到了使用charAt 方法的解决方案,但我特别好奇是否可以使用格式化技术来完成它。

【问题讨论】:

【参考方案1】:

通过String 提取整数的最后两位数字效率低且不必要。

简单地说:

int lastTwoDigits = number % 100;

如果你确实想通过String,你可以使用:

String s = Integer.toString(number);
s = s.substring(s.length() - 2);
int lastTwoDigits = Integer.parseInt(s);

(请注意,这处理 -ve 数字与第一个建议略有不同)。

【讨论】:

String方法是否假定该数字是大于10 的正整数? “数字的最后两位数字”的概念只有在该数字至少有两位数字时才真正有意义。并且没有定义负数的处理。这些确实是应该由 OP 决定如何处理的案例。 谢谢。在我看来,使用格式化技术来提取字符串/整数的某些部分是不可能的

以上是关于使用 String.format 从整数中删除特定数字的主要内容,如果未能解决你的问题,请参考以下文章

从String中删除尾随数字

Android String.format()返回问号(??)

String.format介绍

String.format(%X,num)仅适用于整数吗?

JAVA字符串格式化-String.format()的使用

如何从文件中读取原始文件并在 String.format 中使用