除两位外,所有整数均应为零-Java

时间:2018-07-13 08:04:47

标签: java regex converter digit

我有一些整数值,例如 1447948,21163176,95999 ,我想像这样使它们:

  • 1447948-> 1400000
  • 21163176-> 21000000
  • 95999-> 95000

如何使用Java做到这一点?

3 个答案:

答案 0 :(得分:4)

数学是你的朋友。

int magnitude = (int) Math.pow(10, Math.log10(n) - 1)
int o = (int) Math.floor(n / magnitude) * magnitude

其中n是输入数字,o是输出数字。

答案 1 :(得分:2)

由于四舍五入是从右边算起的,您不能使用它,您可以从字符串传递并使用基本的正则表达式用0替换非两位的第一位数字:

int val = 1447948;
int res = Integer.valueOf((""+val).replaceAll("(?<=\\d{2})\\d", "0"));
//  res : 1400000

(?<=\\d{2})\\d匹配前两位的数字

Workable Demo

答案 2 :(得分:1)

您可以通过将其视为字符串来处理任意数字:

int number = 1447948;
String number1 = String.valueOf(number);
String[] split = number1.split("");
StringBuilder number2 = new StringBuilder();
for (int i = 0; i < split.length; i++) {
  if(i > 1)
    number2.append("0");
  else
    number2.append(split[i]);
}
int result = Integer.parseInt(number2.toString());
System.out.println(result);