首页 > 解决方案 > Java在int中找到第二个前导数字

问题描述

我正在处理一个 Java 问题,我需要检查任何大小的 int 的第二个前导数字(例如:123 中的“2”或 58347 中的“8”)是否是特定数字(例如'2' 或 '5'),然后将 true 分配给布尔值,如果它是那个数字。我正在尝试使用模/除数方法,但如果数字很大,我无法提取第二个前导数字。

我搜索了 Stack Overflow,发现了一个非常相似的问题。但是,如果数字被硬编码为两位数,则该问题的解决方案有效。我知道有一种方法可以将 int 转换为 String,并且我成功地尝试了该方法,但我需要使用 int/modulo/division 方法。我试着做 (n%100)/10; 但它让我倒数第二个数字(例如:4562374 中的“7”),而不是第二个数字。

// n is a number such as 123, or 25, or 52856.
while (n > 0) { 
int i=((n%10)/10);
if( (i==2)||(i==3) || (i==5)|| (i==7) )
{ secondDigit=true; }
else { secondDigit= false; } }
System.out.println(secondDigit);

标签: java

解决方案


只需继续除以 10 直到数字 < 100 然后取模 10,例如:

class Main {
  public static void main(String[] args) {
    int n = 58347;
    while (n >= 100) {
      n /= 10;
    }
    System.out.println(n % 10); // prints 8
  }
}

推荐阅读