Integer和String转换[通俗易懂]

Integer和String转换[通俗易懂]Integer和String相互转换//1、String转IntegerIntegervalue=Integer.parseInt(s);//2、int转StringString.valueOf(value);//Integer.toString(i)Integer.toString(value);//3、Integer转StringString.val…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

Integer和String相互转换

// 1、String 转 Integer
int value = Integer.parseInt(s); //string转int
Integer value = Integer.valueof(s); //string 转 integer, 进行了装箱操作Integer.valueOf(parseInt(s, 10))

// 2、int 转 String
String.valueOf(value); //Integer.toString(i)
Integer.toString(value);

// 3、Integer 转 String
String.valueOf(value); //obj.toString()
value.toString(value); //通过实例对象value调用静态方法,Integer.toString(int)
Integer.toString(value); //通过类名Integer调用静态方法,Integer.toString(int)

Jetbrains全家桶1年46,售后保障稳定

1、String 转 Integer

Integer.parseInt(string s)

  • 对s和radix作判断 (radius是进制,默认为10进制)

  • 对符号位”+”、”-“和字符串长度作处理

  • 取出string中的每个字符转换为数字digit,不能出现非数字位(只能包含char类型 0-9)

  • result乘以radix,result 减去digit

  • 均无异常,如果是负数,则返回result;正数返回-result

// Integer.java
public static int parseInt(String s) throws NumberFormatException { 

return parseInt(s,10); //默认以十进制方式进行转换
}
public static int parseInt(String s, int radix) throws NumberFormatException { 

// s为null,抛出NumberFormatException异常
// radix小于2,或者radix,大于36,抛出NumberFormatException异常
int result = 0;
boolean negative = false;
int i = 0, len = s.length();
int limit = -Integer.MAX_VALUE;
int multmin;
int digit;
if (len > 0) { 

char firstChar = s.charAt(0);
if (firstChar < '0') { 
 // 是否是以符号位"+"、"-"开头
if (firstChar == '-') { 

negative = true;
limit = Integer.MIN_VALUE; //
} else if (firstChar != '+')
throw NumberFormatException.forInputString(s); //以非数字,非"+"、"-"开头则抛异常
if (len == 1) // Cannot have lone "+" or "-"
throw NumberFormatException.forInputString(s); //如果只包含符号位"+"、"-",抛异常
i++;
}
multmin = limit / radix;
while (i < len) { 

// Accumulating negatively avoids surprises near MAX_VALUE
digit = Character.digit(s.charAt(i++),radix);
if (digit < 0) { 

throw NumberFormatException.forInputString(s);
}
result *= radix;
result -= digit;
}
} else { 

throw NumberFormatException.forInputString(s); // s
}
return negative ? result : -result;
}
//Character.java
public static int digit(char ch, int radix) { 

return digit((int)ch, radix);
}
public static int digit(int codePoint, int radix) { 

if (radix < MIN_RADIX || radix > MAX_RADIX) { 

return -1;
}
if (codePoint < 128) { 

// Optimized for ASCII
int result = -1;
if ('0' <= codePoint && codePoint <= '9') { 

result = codePoint - '0';
} else if ('a' <= codePoint && codePoint <= 'z') { 

result = 10 + (codePoint - 'a');
} else if ('A' <= codePoint && codePoint <= 'Z') { 

result = 10 + (codePoint - 'A');
}
return result < radix ? result : -1;
}
return digitImpl(codePoint, radix);
}

2、Integer 转 String

无论是int类型还是integer类型,最终都是通过Integer的toString(int i)这个静态方法进行转换的
源码自行了解吧,里面还做了一次缓存。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219191.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 运行时异常与非运行时异常的区别

    运行时异常与非运行时异常的区别

  • 各大OJ刷题平台汇总

    前言想成为一名高级工程师,算法还是要有的,至少在入门编程和进入公司之前都是必备的。刷题也可以很好的锻炼动手能力和逻辑思维,今天就给大家介绍一些知名的在线刷题平台,都是干货哦!力扣(leetcode)江湖人尽皆知的站点,全球知名的编程平台!总部在美国旧金山的硅谷,创办与2011年,2018年进入中国,并推出付费服务,19年推出力扣App。力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长(度说)。特点:支持c++,c,java,python,Rust,kot

  • pycharm2021激活码_在线激活

    (pycharm2021激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40Z9P7H9NN-eyJsaWNlbnNlSWQiOi…

  • C语言 数组倒序输出数字「建议收藏」

    C语言 数组倒序输出数字「建议收藏」引用一维数组元素对10个数组元素依次赋值为1,2,3,4,5,6,7,8,9,10要求按逆序输出#include<stdio.h>intmain(){ inti,a[10]; for(i=0;i<10;i++) a[i]=i; for(i=10;i>0;i–) printf(“%d\n”,i); return0;}小剧场:不能随波逐流。Don’tgowiththeflow….

  • 快速解决Android中的selinux权限问题

    快速解决Android中的selinux权限问题关于selinux的详细资料,请查阅http://blog.csdn.net/innost/article/details/19299937在Android开发的过程中,遇到关于selinux相关的东西,当时还一下子看不懂,现在好像有点眉目了。比如,内核打印这个提示type=1400audit(32.939:25):avc:denied{open}forpid=2…

  • UML工具:EA(Enterprise Architect)

    UML工具:EA(Enterprise Architect)EA跟RationalRose一样都仅仅是一个UML建模软件,随着对EA的熟悉发现EA的功能太强大了。EA跟RationalRose大不一样,RationalRose只是实现对软件的建模即构建系统的UML模型,而EA却不仅仅是实现这些功能。对于一个软件设计者来说,从需求分析到概要设计、详细设计、数据库设计到测试、发布、部署等一系列软件设计必须的操作都可以在EA中完成。可以说只需要一个EA就可…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号