关于String
来源:互联网 发布:气候数据 编辑:程序博客网 时间:2024/06/02 23:13
转自:http://hi.baidu.com/nemolfairy/blog/item/efb847f63e4528e57709d76b.html
今天看SqlAction中,发现了这么两行代码:
byte []buf = colName.getBytes(); String len = String.valueOf(buf.length);
其中,colName是String类型。当时我就在想为什么不直接用colName.length()呢?哦,对了,length()返回的整型,而上面的len是String类型的。原来,这儿String.valueOf是将int转化为String类型的。
那么这个参数与toString()方法有什么区别呢?
String.valueOf(Object)的基础是Object.toString()。但它与Object.toString()又有所不同。使用Object.toString()时需保证不为null。但采用String.valueOf(Object)时,将不用担心object是否为null值这一问题。为了便于说明问题,分析一下相关的源代码。Jdk里String.valueOf(Object)源码如下:
public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); 从上面的源码可以很清晰的看出null值不用担心的理由。但是,这也恰恰有了隐患。应当注意到,当object为null时,String.valueOf(object)的值是字符串"null",而不是null 。在使用过程中切记要注意。试想一下,如果用 判断一个字符串为空 注意:这里的null==s和"".equals(s)不要写成s==null和s.equals(s),因为""这个值是已经确定的,预知的,而s是未知的,所以用得不小心的时候s.equals("")就会出现nullpoint异常。不一定的equals方法,包括其它很多处理,如果用确定的值处理问题会比未确定的处理少很多bug。 那么String.length()和String.getBytes().length有什么区别呢? "ABCD".length() 结果是 4 还没完,需要补充,哈哈,看来小问题看出大文章来了,这与编码是有关系的,不是那么绝对的事情。 "张某某".getBytes("utf-8").length = 9
}
if(String.valueOf(object)==null)
{
System.out.println("传入的值是null!");
}
这样的语句将可能会发生什么问题。再想一下,向控制台输出时,在视觉上如下语句在执行的结果上有什么不同:
System.out.println(String.valueOf(null));
System.out.println(null);
可以看到的输出将是一模一样的东西:null,但它们意义很明显是不一样的。
"ABCD".getBytes().length 的结果也是4
不过如果换成中文就不一样了
"你好".length() 结果是 2
"你好".getBytes().length 的结果是4
"张某某".getBytes("GBK").length = 6
"张某某".getBytes("ISO8859-1").length = 3
"张某某".getBytes().length = 6 //在windows中文版上运行
"张某某".getBytes().length = 3 //在SCO UNIX上运行
- 关于string
- 关于String
- 关于String
- 关于String
- 关于String
- 关于String
- 关于string
- 关于String、StringBuffer、String…
- 关于String.split()方法
- 关于String类型
- 关于String 和StringBuffer
- 一个关于String问题
- 关于String.spilit();
- 关于String截取空格
- 关于string的说明
- 关于String的笔记
- 关于String的解析
- 关于String的问题
- csdn帐户登陆不了
- STL介绍 - map
- Lucene2.9.1笔记(同样适用于Lucene 3.0 )
- 人际关系
- 子衿1岁了
- 关于String
- GridView生成的HTML代码
- 第五章:初遇困境
- 打假球
- Eclipse插件
- 在XP中安装ms loop back
- 单链表反转
- 莫名其妙
- asp.net点击按钮关闭窗口