public class CutString {
//判断一个字符是不是一个汉字,一个汉字2字节,如果字节数大于1则是汉字
public static boolean isChinesechar(char c) throws Exception{
return String.valueOf(c).getBytes("GBK").length>1;
}

public static String subString (String str,int count) throws Exception{

//原始字符串不能为空也不能为空符
if(str != null&&!"".equals(str)){
//将原始字符串转换为GBK编码格式
str = new String(str.getBytes(),"GBK");
//要截取的长度大于0,且小于字符串的字节数
if(count>0 && count<str.getBytes("GBK").length){
StringBuffer sb = new StringBuffer();
char c;
for (int i = 0; i < count; i++) {
c = str.charAt(i);
sb.append(c);
if(CutString.isChinesechar(c)){
count--;
}
}
 return sb.toString();
}
}
return str;
}
我不明白的问题:
上面的subString()方法里有两个return,第一个是: return sb.toString();,第er个是 return str;。这就让我犯糊涂了。
第一个的返回值去哪里了?为什么即使这样测试的结果也是对的呢?
我自己想的是:String s = "";
              s = sb.toString();
              return s;
我的虽然貌似对着得,但是我对上面的写法不理解!请前辈为小弟解答下!