我可以使用哪些方法返回整数的特定数字?
//val = number to find target digit on
//dig = the digit to return from right-side
private int digit(int val, int dig) {
String num = "" + val;
return Character.getNumericValue(num.charAt(num.length-dig));
}
例如,如果 val
为“48602”,并且我想获取第二位数字(十分位),它将返回“0”。
这是一种丑陋的方法,但是有没有一种完全不使用字符串的方法?也许用模?如果我想找到第 7 位数字(百万分之一),这个方法甚至不起作用(该数字必须解析为“0048602”)。
潜在用途是基数排序(根据有效数字将数字放入“桶”中)。我发现使用这种方法相对费力。
最佳答案
有一个想法
private int digit(int val,int dig){
int div = 1;
for(int i=0;i<dig;i++)
div*=10; //make 10^dig
val/=div; //remove the smaller digits
return val%10; //return only one digit
}
未测试
编辑更好的方法:
private int digit(int val,int dig){
int div = (int)Math.pow(10,dig);
val/=div; //remove the smaller digits
return val%10; //return only one digit
}
关于java - 查找整数的目标数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458083/