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)


相关推荐

  • 最大公约数和最小公倍数的关系

    最大公约数和最小公倍数的关系联系:最大公约数:指两个或多个整数共有的约数中最大的那个最小公倍数:指两个或多个整数共有的倍数中最小的那个以两个整数为例:最大公约数表示为:(a,b)最小公倍数表示为:[a,b]定理:(a,b)X[a,b]=ab(a,b均为整数)例题:#include<stdio.h>intmain(){ intm,n,min=0,max=0; scanf(“%d%d”,&m,&n); //求最大公约数 for(inti

  • 实例分割总结 Instance Segmentation Summary[通俗易懂]

    实例分割总结 Instance Segmentation Summary[通俗易懂]实例分割:机器自动从图像中用目标检测方法框出不同实例,再用语义分割方法在不同实例区域内进行逐像素标记借一个浅显的说法:语义分割不区分属于相同类别的不同实例。例如,当图像中有多只猫时,语义分割会将两只猫整体的所有像素预测为“猫”这个类别。与此不同的是,实例分割需要区分出哪些像素属于第一只猫、哪些像素属于第二只猫基本思路目标检测+语义分割。SDS-&gt;HyperColumns-&gt…

  • Mysql常见错误提示及解决方法

    Mysql常见错误提示及解决方法Mysql常见错误提示及解决方法

  • 对大数据技术的认识_java.lang.String

    对大数据技术的认识_java.lang.String0.引言什么都先不说,先看下面这个引入的例子:Stringstr1=newString("SEU")+newString("Calvin");System.out.println(str1.intern()==str1);System.out.println(str1=="SEUCalvin");本人JDK版本1.8,输出结果为:tru…

    2022年10月17日
  • Hash算法的讲解[通俗易懂]

    Hash算法的讲解[通俗易懂]散列表,又叫哈希表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hashta

  • 项目范围管理:项目范围管理的概念是什么_项目范围管理规划案例

    项目范围管理:项目范围管理的概念是什么_项目范围管理规划案例项目范围管理包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程。 项目范围管理关注的焦点是:什么是包括在项目之内的,什么是不包括在项目之内的,即为项目工作明确划定边界。 对项目范围管理和控制的有效性,是衡量项目是否达到成功的一个必要标准,项目范围的管理不仅仅是项目整体管理的一个主要部分,同时在项目中不断地重申项目工作范围,有利于项目不偏离轨道,是项目中实施控制管理的一个主要手段。 项目范围是项目其他各方面管理的基础。如果范围都弄不清楚,成本、进度和质量等就无从谈起。确认项目范围对项目管理有如

发表回复

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

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