Java小零碎 leetcode小经验—— String int Integer 互相转换

比眉伴天荒 2022-09-02 13:45 115阅读 0赞

String 转 Integer

valueOf

  1. String s = "123";
  2. Integer a = Integer.valueOf(s);

String 转 int

parseInt 都讲得很清楚了 是parse解析到int 而不是Integer!

  1. String s = "123;
  2. int a = Integer.parseInt(s);

int Integer 转 String

valueOf 最通用 语义上最顺的写法 请看s1 s2
你看Integer的valueOf也是同样含义——把别的类型转成或者包装成自己类型

  1. int a1 = Integer.MAX_VALUE;
  2. Integer a2 = Integer.MAX_VALUE;
  3. String s1 = String.valueOf(a1);
  4. String s2 = String.valueOf(a2);
  5. String s3 = ""+a1+a2;

当然了 你也可以用s3的写法 注意每次+都会产生临时的String对象,如果是循环多次 耗性能 此时建议使用Stringbuilder 避免临时String对象的产生 最好还能一开始固定StringBuilder大小,这样不会导致其扩容造成的性能损耗。

parseInt用于实现valueOf的效果?

我这么写呢?对吗?

  1. String s = "123";
  2. Integer a = Integer.parseInt(s);

回答:对的 但是有valueOf尽量用valueOf 因为语义上不是很直观
一般某个对象 比如String的valueOf 结果就要是String,Integer也是如此 valueOf是专门用于干对象转换的

自动装箱 自动拆箱 int Integer互转

那这个代码为什么能用?

这里int自动转换到 Integer 被称为自动装箱过程,从原生类型到这个对象实例,java会帮我们自动包装 自动装箱 把原生类型这个值int 封装为Integer对象实例

因此 int转Integer 只需要直接赋值即可
那反过来呢?也可以的 java会帮我们自动拆箱

int Integer的区别

Integer是对象,其中一个属性为int(真正的int值)
int是java原生的 基础数据类型 在内存 堆里边就是32bit = 4Byte 这么放着的 它是实体 存的就是具体的值

Integer对象实例 比如本例子中的a,是一个Integer实例的引用,类似C语言的指针 它指向的是对象实例。所以你看到ArrayList<Integer> 你可以想象一下,ArrayList装了一车子的对象引用(指针)罢了

后记

这个博客主要面向萌新 比如我这种菜鸡 大佬们请勿凡尔赛说 这不就是常识? 不会把不会吧都2021年了还不会呢? 诸如此类的话 我们这些萌新生存艰难 刚开始上手敲代码还各种小错误 刚学了什么就忘了什么 可能基础的东西 一上手敲就忘了。。

发表评论

表情:
评论列表 (有 0 条评论,115人围观)

还没有评论,来说两句吧...

相关阅读