从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。