如何从整数中提取单个数字

时间:2015-05-06 19:03:11

标签: java

我目前正在尝试从整数(大于1位)中提取单个数字(int),但我无法在此问题上找到任何帮助。

  

例如:

     
      
  • 从123456获得3
  •   
     


     
      
  • 从1257848获得4
  •   

我将如何在Java中执行此操作?

6 个答案:

答案 0 :(得分:5)

试试这个:

String.valueOf(Math.abs((long)x)).charAt(0)

或做一些像

这样的计算
 int x= Integer.parseInt(Integer.toString(123456).substring(0, 1));

int digit(int x) {
    while (x > 9) {
        x /= 10;
    }
    return x;
}

答案 1 :(得分:3)

根据要提取的位数使用% or /运算符。像

12345 % 10 = 5

12345 % 100 = 45

12345 / 10000 = 1

答案 2 :(得分:3)

无需解析char,只需使用-'0' trick

free( fooArray[0] );
free( fooArray[1] );

free( fooArray );

答案 3 :(得分:2)

public static int getFirstDigit(int val) {
  if (val < 0) {
    throw new RuntimeException("Bad Input: " + val);
  }
  while (val > 9) {
    val = val / 10;
  }
  return val;
}

答案 4 :(得分:2)

试试这个

    public int getVal(int digits)
{
  String str=String.valueOf(digits);
  for (int i=0; i<str.length(); i++)
     {
       if((str.charAt(i)) == '3') // 3 or 4 or whatever digit you desire
         return str.charAt(i);
     }
  return 0;
}

答案 5 :(得分:2)

如果您想要n - (从右到左)数字(在我的示例中,计数从0开始),您只需要计算(num/(10^n))%10

如果不清楚,请告诉我。