int change(String []sf)
{
//int k=strlen(sf);
int i,j,t;

int n2=0;
//if(sf[0]=='0'&&sf[1]=='x')
//{
for(i=2;i<sf.length-1;i++)
{  
int nn=0;
if(sf[i]>='0'&&sf[i]<='9')
  nn=sf[i]-48;
if(sf[i]>=65&&sf[i]<=70)
nn=sf[i]-55;
for(t=0;t<k-i-2;t++)
{
nn*=16;
}
n2+=nn;
}
//}
return n2;
}

盼回答~~

解决方案 »

  1.   

    >=怎么比较字符串跟字符?String[] sf; String a = sf[i];这里的a是一个字符串,而不是char,你用一个字符串跟char比能编译吗?
      

  2.   

    就一段程序,什么说明都没有,有点强人所难吧。这个16进制字符串转整数的程序你看看吧。
    public class SimpleTest {
    public static void main(String[] args) {
    System.out.println(change("0x123A".toCharArray()));
    System.out.println(Integer.parseInt("0x123A".substring(2), 16));
    }
    static int change(char[] sf) {
    int k = sf.length;
    int i, t;
    int n2 = 0;
    for (i = 2; i < sf.length; i++) {
    int nn = 0;
    if (sf[i] >= '0' && sf[i] <= '9')
    nn = sf[i] - 48;
    if (sf[i] >= 65 && sf[i] <= 70)
    nn = sf[i] - 55;
    for (t = 0; t < k - i - 1; t++) {
    nn *= 16;
    }
    n2 += nn;
    }
    return n2;
    }
    }