我可以使用哪些方法返回整数的特定数字?
//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")。
可能用于基数排序(将数字放入"桶和#34;基于有效数字)。我发现使用这种方法相对比较费力。
答案 0 :(得分:2)
有一个想法
<ul class="dropdown-menu pull-right" role="menu">
<li><a href="#">Menu Item 01</a></li>
<li><a href="#">Menu Item 01</a></li>
<li><a href="#">Menu Item 02</a></li>
<li><a href="#">Menu Item 03</a></li>
<li><a href="#">Menu Item 04</a></li>
</ul>
未经测试
编辑更好的方式:
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
}
答案 1 :(得分:2)
您可以使用以下代码执行此操作:
public int getDigit(int n, int i) {
return (n / ((int) Math.pow(10, i))) % 10;
}
答案 2 :(得分:2)
您可以使用
return ((val%(Math.pow(10, dig))) - (val%(Math.pow(10, dig-1))))/(Math.pow(10, dig-1));
哪里
(val%(Math.pow(10, dig)))
摘下前面的数字
- (val%(Math.pow(10, dig-1)))
减去尾随数字, 和
/(Math.pow(10, dig-1)
取消剩余的零