$from = 62; $num = strval($num); $dict = 'Dpjsxk9ZPdniVwTWm3MBrEIt5XCYASyRc7laNeKLbOvGzg0681hqu42UfJFoHQ'; $len = strlen($num); $dec = 0; for($i = 0; $i < $len; $i++) { $pos = strpos($dict, $num[$i]); $dec = bcadd(bcmul(bcpow($from, $len - $i - 1), $pos), $dec); } return $dec; 翻译成java
时间: 2023-09-06 09:11:35 浏览: 110
在Java中,可以使用BigDecimal类来进行精确的浮点数运算。下面是将给定的PHP代码翻译成Java的示例:
```java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
int from = 62;
String num = "123456789"; // 替换为实际的值
String dict = "Dpjsxk9ZPdniVwTWm3MBrEIt5XCYASyRc7laNeKLbOvGzg0681hqu42UfJFoHQ";
int len = num.length();
BigDecimal dec = BigDecimal.ZERO;
for (int i = 0; i < len; i++) {
char c = num.charAt(i);
int pos = dict.indexOf(c);
BigDecimal pow = BigDecimal.valueOf(Math.pow(from, len - i - 1));
BigDecimal mul = pow.multiply(BigDecimal.valueOf(pos));
dec = dec.add(mul);
}
System.out.println(dec);
}
}
```
请注意,替换代码中的num为实际的值。此示例假设您已经在Java中导入了java.math.BigDecimal类。在循环中,我们使用String的charAt方法来获取每个字符,然后使用String的indexOf方法来查找该字符在字典字符串中的位置。然后,我们使用BigDecimal类的方法进行幂运算(pow)、乘法(multiply)和加法(add)。最后,我们打印出结果(dec)。
请确保将代码中的num替换为实际的值,并根据需要调整from、dict和len的值。
阅读全文