toString和new String


上一篇 浅谈base64中已经简单介绍过了base64,接下来看这样一个例子,现在我们实现如下代码:

1.引言

public class TestString {
    public static void main(String[] args) {
        //表示base64的密文
        String str="TU0jV0xBTiNVYys5bEdiUjZlNU45aHJ0bTdDQStBPT0jNjQ2NDY1Njk4IzM5OTkwMDAwMzAwMA==";

        //使用base64进行解码
        String rlt1=new String(Base64.decode(str));
        //使用base64进行解码
        String rlt2=Base64.decode(str).toString();

        System.out.println("new String=="+rlt1);

        System.out.println("toString=="+rlt2);
    }
}

运行结果:

new String==MM#WLAN#Uc+9lGbR6e5N9hrtm7CA+A==#646465698#399900003000
toString==[B@7d4991ad

那么这两种结果究竟哪一个是正确的呢?

答:这里应该用new String()的方法,因为Base64加解密是一种转换编码格式的原理

☆注意:如果在使用编码进行加密、解密的时候,需要使用new String这种方式

2.toString()与new String()对比

·str.toString方法:这个方法调用的实际上是object里面的tostring方法,一般在object的tostring方法,返回的实际上是哈希值(地址)

·new String方法:是根据参数,参数是一个字节数组,使用java虚拟机默认编码格式,会把这个字节数组进行decode,找到对应的字符,如果虚拟机的编码格式是ISO-8859-1,会去找ascii里面的编码进行参照,找对应的字符。

3.应用场景

new String():一般在进行字符转码(使用byte[]字节数组)的时候,需要使用newString

般在进行字符转码(使用byte[]字节数组)的时候,需要使用newString

toString:做对象打印的时候,或者想得到地址的时候,就使用toString

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三金哥爱吃醋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值