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;
我的虽然貌似对着得,但是我对上面的写法不理解!请前辈为小弟解答下!
解决方案 »
- 一个关于JAVA正则表达式的小问题
- Java中下载文件时,选择打开文件名变为乱码,如何解决。
- 输入输出流作为参数的问题
- 用使用过XIS 这个XML数据库的大大进来看看。
- 高手们给个建议!来者有分!
- 可运行的jar打包问题
- ado的rs.field("字段名")可以访问任何类型的数据,那吗java里面这种问题如何处理。是不是要先判断类型然后再根据类型来使用相应的getint or getString阿!谢谢了!在线等待!
- 程序中用何函数或方法才知道所运行的java程序名?
- java web server
- java如何实现对本机的ip地址 网关地址 子网掩码的修改??
- 一个小问题
- JAVA程序界面问题
如果条件不成立,就会return str;
这有什么问题吗?