public class Test {

private String code = "1B12021D5604101207125A0101011B4C1003";
private int i=0,j=0;

public static void main(String[] args){
new Test().test1();
}

public void test1(){
for(i=0;i<code.length();i++){
int s = Integer.valueOf(code.substring(i,2));
i++;
System.out.println(i + " --> " + s);
}
}
}这段代码,为什么在第一次取值的时候是正常的,再次取值的时候,code.substring取到的就是空值了?
求解

解决方案 »

  1.   

    是空值? 不对吧  你仔细看看 
    应该是 code.substring(i,i+2) 
    public String substring(int beginIndex,
                            int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。 
    示例:  "hamburger".substring(4, 8) returns "urge"
     "smiles".substring(1, 5) returns "mile"
     
    参数:
    beginIndex - 起始索引(包括)。
    endIndex - 结束索引(不包括)。 
      

  2.   


    搞定了。我把它的用法跟C#搞混了。
    C#第二个参数表示取多少位。java是表示结束的index  哎。害死人啊。