`
leejunner
  • 浏览: 74590 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java.toString() ,(String),valueOf

    博客分类:
  • JAVA
 
阅读更多
在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。
方法1:采用 Object#toString()方法请看下面的例子:
Object object = getObject();
System.out.println(object.toString());
在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。
方法2:采用类型转换(String)object方法这是标准的类型转换,将object转成String类型的值。使用这种方法时,需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。如:
Object obj = new Integer(100);
String strVal = (String)obj;
在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。但是,
Integer obj = new Integer(100);
String strVal = (String)obj;
如是格式代码,将会报语法错误。
此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。
方法3:采用String.valueOf(Object) String.valueOf(Object)的基础是Object#toString()。但它与Object#toString()又有所不同。在前面方法1的分析中提到,使用后者时需保证不为null。但采用第三种方法时,将不用担心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!!!在使用过程中切记要注意。试想一下,如果我们用 if(String.valueOf(object)==null){System.out.println(“传入的值是null!”);}这样的语句将可能会发生什么问题。再想一下,向控制台输出时,在视觉上如下语句在执行的结果上有什么不同:
System.out.println(String.valueOf(null));
System.out.println(null);
我们看到的输出将是一模一样的东西:null,但它们意义相同吗?
以上是对object对象转换为String的一些总结。

zz: http://blog.sina.com.cn/s/blog_616b57310100fmvq.html
分享到:
评论

相关推荐

    Java中区别.toString() ,(String),valueOf()方法

    主要介绍了Java中区别.toString() ,(String),valueOf()方法,需要的朋友可以参考下

    Java中BigInteger.docx

    java 中BigInteger应用import java.util.Scanner; import java.math.... BigInteger m=BigInteger.valueOf(2);//给高精度的数赋值; m=m.pow(n);//Integer类的方法 System.out.print(m.toString()); } } }

    java代码获取myeclipse注册码.txt

    String code = new StringBuilder(need).append(String.valueOf(suf)).toString(); return this.change(code); } private int decode(String s) { int i; char[] ac; int j; int k; i = 0; ac ...

    fastjson-1.2.7.jar通用json文本解析实例(轻开IOS和安卓App服务器开发)

    b0.set(key,new StringBuffer(prefix1).append(".").append(String.valueOf(i)).append(".").append(String.valueOf(j)).toString()); } else if(ob1 instanceof JSONObject)//如果下级是json...

    StringAPI.java

    Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, ...

    Java 自学宝典 第二章 数据类型

    valueOf(): 将字符串解析为布尔对象 11 2. 2. 6. toString(): 返回布尔的字符串值 11 2. 3. 整数数据类型 12 2. 3. 1. Java的整数数据类型:内存和长度 12 2. 3. 2. 整数计算 12 2. 3. 3. 二进制和十进制值表 12 2....

    java 类型转换 大全

    如何将整数 int 转换成字串 String ? A. 有叁种方法: 1.) String s = String.valueOf(i); 2.) String s = Integer.toString(i); 3.) String s = "" + i;

    蓝桥杯JAVA 特殊回文数

    String a=String.valueOf(i); StringBuilder sb=new StringBuilder(a); String b=sb.reverse().toString(); if(a.equals(b)){ for(int j=0;j<a.length();j++){ sum+=(int)a.charAt(j)-48; ...

    探讨Object转为String的几种简易形式详解

    常用的方法有Object.toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。 方法1:采用 Object.toString()方法请看下面的例子:Object object = getObject();System.out....

    myeclipse7.0

    String code = new StringBuilder(need).append(String.valueOf(suf)) .toString(); return this.change(code); } private int decode(String s) { int i; char[] ac; int j; int k; i = 0; ac = s....

    java上传文件实例

    String filename = String.valueOf((1900+date.getYear()))+String.valueOf((date.getMonth()+1)); saveurl=application.getRealPath("/")+url; File file = new File(saveurl); if(!file.exists()){ file.mkdirs()...

    Excel POI读取封装(文件+示范代码)

    String.valueOf(d.longValue())); continue; } dataMap.put(headMap.get(j).toString(), cell.toString()); } } } } dataList.add(dataMap); } } return dataList; } // 将从Excel表格读取到的数据...

    JavaScript权威指南

    By Value Versus by Reference Section 11.3. Garbage Collection Section 11.4. Lexical Scoping and Nested Functions Section 11.5. The Function( ) Constructor and Function Literals Section 11.6. ...

    javascript中tostring()和valueof()的用法及两者的区别

    基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题。 1.用法如下: toString()方法:返回对象的字符串表示。 对象 操作 Array 将 Array 的元素...

    带注释的Bootstrap.java

    String value = CatalinaProperties.getProperty(name + ".loader"); if ((value == null) || (value.equals(""))) return parent; //将${catalina.base},${catalina.home}替换为Tomcat的绝对路径 value = ...

    jsp探针 ver0.1

    private final String windowsParseMacAddress(String ipConfigResponse) throws java.text.ParseException { String localHost = null; try { localHost = java.net.InetAddress.getLocalHost().getHostAddress(); ...

    leetcode所有报错-offer_plus:leetcode题解(java)2019.10——

    String.valueOf(123) 数字转字符串 Integer.valueOf("+123") 字符串转数字 String s = "af+f_fe "; System.out.println(s.length()); // 字符串长度 char[] strArr = s.toCharArray(); System.out.println(Arrays....

    Java精华(免费版)

    //int h=Integer.valueOf(args[1]).intValue(); //以上为三种将字符串转换成整形的方法。 for(int i=0;i;i++) { StringBuffer sb=new StringBuffer(); //使用stringbuffer,是因为它是可追加的。 for(int j=0;j;j++)...

    java发送短信之AT指令

    + String.valueOf(symbol3) + String.valueOf(symbol1); strReturn = myport.sendAT(atCommand); if (strReturn.indexOf("OK") != -1 && strReturn.indexOf("+CMGS") != -1) { System.out.println("短信发送...

    中文转英文

    uniCode = String.valueOf(ch).getBytes("GBK"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } if (uniCode[0] [0] > 0) { return null; } else { ...

Global site tag (gtag.js) - Google Analytics