java - 查找整数的目标数字

标签 java digit radix-sort

我可以使用哪些方法返回整数的特定数字?

//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/

相关文章:

algorithm - 基数排序是唯一的非比较排序算法吗?

java - 如何从命令行添加外部 Jar 并使用文件的完整路径来编译和执行 Java?

java - Restful 网络服务 - NoClassDefFoundError : org/glassfish/jersey/ExtendedConfig

java - 如何使用 BigDecimals 进行除法

java - Google 应用引擎终止实例启动

algorithm - 线性时间内的最小轴平行边界框

c++ - 回文整数检查器

c - 如何在C中使用12位数字?

java - 提示 JTextField 使其变成灰色

c - c中 float 的基数排序