日期:2014-05-20  浏览次数:20783 次

按逻辑,我的这判断应该等于10,11,12,13,14,15的数组呀?怎么不对?
import   java.util.ArrayList;

class   ComHex{
void   comHex(String   scrString){
ArrayList   hexNum   =   new   ArrayList();
char[]   a   =   scrString.toCharArray();
for(int   i   =   0;   i   <   a.length;   i++){
if( 'a '==a[i])
hexNum.add(10);
if( 'b '==a[i])
hexNum.add(11);
if( 'c '==a[i])
hexNum.add(12);
if( 'd '==a[i])
hexNum.add(13);
if( 'e '==a[i])
hexNum.add(14);
if( 'f '==a[i])
hexNum.add(15);
else
hexNum.add(a[i]);
}
for(int   n   =   0;   n   <   a.length;   n++)
System.out.println(hexNum.get(n));
}
}

public   class   Hex   {
public   static   void   main(String[]   args){
ComHex   scr   =   new   ComHex();
scr.comHex( "abcdef ");
}
}

------解决方案--------------------
给后面那几个if都变成else if
if ( 'a ' == a[i])
hexNum.add(10);
else if ( 'b ' == a[i])
hexNum.add(11);
else if ( 'c ' == a[i])
hexNum.add(12);
else if ( 'd ' == a[i])
hexNum.add(13);
else if ( 'e ' == a[i])
hexNum.add(14);
else if ( 'f ' == a[i])
hexNum.add(15);
else
hexNum.add(a[i]);
要不然,最后一个else只对应最后一个if