`
T240178168
  • 浏览: 365603 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

toString() ,String,String.valueOf

    博客分类:
  • java
阅读更多
常用的方法有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,但它们意义不相同

0
0
分享到:
评论

相关推荐

    浅谈String.valueOf()方法的使用

    `String.valueOf()`方法在Java中是一个非常实用的工具,它用于将各种数据类型转换为String类型。这个方法在处理不同类型的数据时有不同的行为,下面我们详细探讨一下。 1. **空值和未定义**: `undefined`和`null`...

    java中string和int型的相互转换.doc

    `String.valueOf()` 方法和 `Integer.toString()` 方法都可以将 int 类型转换为 String 类型,而字符串连接操作符可以将 int 类型转换为 String 类型,并且可以在字符串中插入其他字符。 在实际开发中,我们通常...

    java中String类型转换方法.pdf

    * 使用 `Integer.valueOf()` 方法:`String str = "25"; int i = Integer.valueOf(str).intValue();` 字符串到浮点型 将字符串转换为浮点型可以使用以下方法: * 使用 `Double.parseDouble()` 方法:`String str ...

    java中int_char_string三种类型的相互转换

    String s = String.valueOf(i); 2. 使用 Integer.toString() 方法 String s = Integer.toString(i); 3. 使用字符串连接符 String s = "" + i; 四、将 int 转换成 Integer 将 int 转换成 Integer 可以使用以下...

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

    在Java编程语言中,将对象转换为字符串是一个常见的操作,主要涉及到`toString()`、`(String)`类型转换以及`String.valueOf()`这三个方法。了解它们的区别和使用场景对于编写高质量的Java代码至关重要。 首先,`...

    java对象转换String类型的三种方法共1页.pdf

    对于对象,如果对象非null,`String.valueOf()`实际上就是调用了`toString()`方法。如果对象是null,`String.valueOf()`会返回"null"字符串。 3. **StringBuilder / StringBuffer 和格式化输出** 当你需要将多个...

    java.lang.NumberFormatException For inputstring 4294967295处理方法

    在Java中,`Integer.parseInt()` 和 `Integer.valueOf()` 方法默认将字符串转换为32位有符号整数。这意味着它们能够处理的范围是 `-2^31` 到 `2^31 - 1`,即 `-2147483648` 到 `2147483647`。因此,当试图将 `'...

    sniffer基于jpcap的嗅探技术

    shujvbao1.put("最大网段数量", String.valueOf(ippacket.hop_limit)); shujvbao1.put("数据包头长度", String.valueOf(ippacket.header.length)); shujvbao1.put("数据包是否有分片

    Android实验4

    public int compare_130(int a,int ... String msg = String.valueOf(a) + " compare with " + String.valueOf(b) + ",the " + String.valueOf(result)+" is bigger"; labelView.setText(msg); } });

    Java String Interview Questions.pdf

    可以使用Integer.parseInt()方法将Java字符串转换为整数,使用String.valueOf()方法将整数转换为Java字符串。 23. 如何将Java字符串转换为StringBuilder? 可以使用new StringBuilder(String)方法将Java字符串转换...

    java数据类型转换

    String str = String.valueOf(i); // 使用valueOf ``` - `toString`:将int类型转换为字符串。 - `valueOf`:创建一个包含整数值的String对象。 ##### Double转String 将双精度浮点数转换为字符串: ```java ...

    Android实验动态生成数

    动态生成数的运用 ... String msg = String.valueOf(a) + " compare with " + String.valueOf(b) + ",the " + String.valueOf(result)+" is bigger"; labelView.setText(msg); } });

    StringAPI.java

    int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引 int lastIndexOf...

    java 源码 (数字转换2)

    当我们需要将整数显示为人类可读的字符串时,可以使用`Integer.toString()`或`String.valueOf()`方法。例如,将一个int类型的数字转换成字符串: ```java int num = 123; String strNum = Integer.toString(num)...

    全面解析JavaScript中的valueOf与toString方法(推荐)

    4. **类型转换函数**:使用`String()`、`Number()`或`Boolean()`函数时,它们分别会调用对象的`toString`、`valueOf`以及`valueOf`(然后可能是`toString`)。 在上述例子中,`alert(aaa)`和`alert(+aaa)`的行为...

    JAVA数据类型转换

    例如,`stringToInt`方法使用`Integer.valueOf()`将字符串转换为`Integer`对象,然后通过`intValue()`得到`int`值。其他方法如`stringToFloat`和`floatToString`遵循相同的概念。 总的来说,理解并正确使用Java中的...

    double to string

    在Java中,你可以使用`String.valueOf()`函数将`double`转换为`String`: ```java double num = 3.14159; String strNum = String.valueOf(num); ``` 或者使用`Double.toString()`方法: ```java double num...

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

    在JavaScript中,`toString()`和`valueOf()`是两种常见的对象方法,它们的作用在于将对象转换成更适合当前上下文的表示形式。尽管这两种方法在很多情况下都可以用来获取对象的字符串表示,但它们之间存在一些关键的...

Global site tag (gtag.js) - Google Analytics