(1)题目描述
用英文字母a-z来分别表示数值0-25, 形成一个26进制的数值表示法。需要你写一个方法,将用a-z表示的26进制数值的字符串,转化为对应的10进制数值。
(2)解题思路
1. 将字符串转换为字符数组
2. 遍历字符数组,逆序获取,从最后一位到第一位;并获取当前进制位数
3. 利用Math.pow() 方法可返回 26 的 y 次幂的值,并累加
(3)代码
public class Main {
public static void main(String[] args) {
System.out.println("ba:"+convert("ba"));
System.out.println("goodboy:"+convert("goodboy"));
}
public static long convert(String str){
long result = 0;
//1. 将字符串转换为字符数组
char[] arr = str.toCharArray();
//2.遍历字符数组,逆序获取,从最后一位到第一位;并获取当前进制位数
for(int i=arr.length-1,j=0;i>=0;i--,j++){
int current = arr[i] - 'a';
//利用Math.pow() 方法可返回 26 的 y 次幂的值,并累加
result = result + (long)(current * Math.pow(26, j));
}
return result;
}
}
(4)运行结果