从Java中的int获取数字的特定数字

可能重复:
返回整数的第一个数字

在我的java程序中,我将一个数字存储在一个数组中。

p1Wins[0] = 123; 

我如何检查p1Wins[0]的第一个数字? 还是第二个或第三个? 我只需要能够找到任何特定数字的值。

谢谢!

模块化算术可用于完成您想要的任务。 例如,如果将123除以10 ,并取余数,则得到第一个数字3 。 如果你将123除以100整数除法,然后将结果除以10 ,你得到第二个数字2 。 更一般地,数字的第n位可以通过公式(number / base^(n-1)) % base

 public int getNthDigit(int number, int base, int n) { return (int) ((number / Math.pow(base, n - 1)) % base); } System.out.println(getNthDigit(123, 10, 1)); // 3 System.out.println(getNthDigit(123, 10, 2)); // 2 System.out.println(getNthDigit(123, 10, 3)); // 1 

试着

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

你将不得不做一些数学魔法来获得任意数字的第n位数,基本上使用除法和模10如果你想要它是一个数字。 否则字符串操作将起作用。

 int nth ( int number, int index ) { return ((int)number / java.lang.Math.pow(10, index)) % 10; } char nth ( int number, int index ) { return String.valueOf(java.lang.Math.abs(number)).charAt(index); } 

请注意,modulo方法将从右侧开始,字符串将从左侧开始;

 Integer(plWins[0]).toString().charAt(0) 

您将数字转换为字符串然后执行charAt。 0也可以替换为任何其他字符。 它不是太优雅,但我相信Java不提供任何更直接的方法。 如果char不是您的首选类型,您也可以选择将其强制转换为int。