按逻辑,我的这判断应该等于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