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

java小问题求解

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取到的就是空值了?
求解

------解决方案--------------------
是空值? 不对吧  你仔细看看 
应该是 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 - 结束索引(不包括)。