实战技巧:Java版剑指Offer - 十进制转字母型二十六进制表示法
最编程
2024-02-06 10:35:49
...
public class List1
{
public static int numberTransform2(String str)
{
char[] strArray = str.toCharArray();
int num = 0;
if(strArray.length < 0)//如果没有输入字符,则报错。
{
System.out.println("没有输入字符");
return -1;
}
int sum = 0;
for(int i =0; i < strArray.length; i++)
{
System.out.println("i="+i+",strArray[i]="+strArray[i]);
System.out.println("((int)(strArray[i] -'A'))="+((int)(strArray[i] -'A')));
int temp = strArray[i] - 'A';
System.out.println("减A的值后temp="+temp);
if(temp >= 26 || temp < 0)
{
System.out.println("字符不合规范");
return -1;
}
sum = 26*sum + temp + 1;
//num = num * 26 + ((int)(strArray[i] -'A') +1);
//System.out.println("运算后num="+num);
System.out.println("运算后sum="+sum);
}
return sum;
}
public static void main(String[] args) {
System.out.println(numberTransform2("AB"));
}
}
{
public static int numberTransform2(String str)
{
char[] strArray = str.toCharArray();
int num = 0;
if(strArray.length < 0)//如果没有输入字符,则报错。
{
System.out.println("没有输入字符");
return -1;
}
int sum = 0;
for(int i =0; i < strArray.length; i++)
{
System.out.println("i="+i+",strArray[i]="+strArray[i]);
System.out.println("((int)(strArray[i] -'A'))="+((int)(strArray[i] -'A')));
int temp = strArray[i] - 'A';
System.out.println("减A的值后temp="+temp);
if(temp >= 26 || temp < 0)
{
System.out.println("字符不合规范");
return -1;
}
sum = 26*sum + temp + 1;
//num = num * 26 + ((int)(strArray[i] -'A') +1);
//System.out.println("运算后num="+num);
System.out.println("运算后sum="+sum);
}
return sum;
}
public static void main(String[] args) {
System.out.println(numberTransform2("AB"));
}
}