`

Integer.parseInt(String s ,int radix)方法使用解释

 
阅读更多
方法parseInt(String s,int radix)的目的是输出一个十进制数,这个数字是“String s”但是我们要知道他是多少进制的,而方法中“int radix”参数正是来表达这个信息的。

比如:parseInt(1010,2)
意思就是:输出2进制数1010在十进制下的数.
更直白地说:parseInt(String s,int radix)就是求“int radix”进制数“String s”的十进制数是多少。

-----------------------

我们平时用到Integer.parseInt("123");其实默认是调用了int i =Integer.parseInt("123",10); 
其中10代表的默认是10进制的,转换的过程可以看成: 
                         
            i=  1*10*10+2*10+3 
若是 
               int i = Integer.parseInt("123",16); 
即可以看成: 
               i  = 1*16*16+2*16+3 = 291
 
根据:Character.MIN_RADIX=2和Character.MAX_RADIX=36 则,parseInt(String s, int radix)参数中 
radix的范围是在2~36之间,超出范围会抛异常。其中s的长度也不能超出7,否则也会抛异常。 


源码如下:
public static int parseInt(String s, int radix)
		throws NumberFormatException
    {
        if (s == null) {
            throw new NumberFormatException("null");
        }

	if (radix < Character.MIN_RADIX) {
	    throw new NumberFormatException("radix " + radix +
					    " less than Character.MIN_RADIX");
	}

	if (radix > Character.MAX_RADIX) {
	    throw new NumberFormatException("radix " + radix +
					    " greater than Character.MAX_RADIX");
	}

	int result = 0;
	boolean negative = false;
	int i = 0, max = s.length();
	int limit;
	int multmin;
	int digit;

	if (max > 0) {
	    if (s.charAt(0) == '-') {
		negative = true;
		limit = Integer.MIN_VALUE;
		i++;
	    } else {
		limit = -Integer.MAX_VALUE;
	    }
	    multmin = limit / radix;
	    if (i < max) {
		digit = Character.digit(s.charAt(i++),radix);
		if (digit < 0) {
		    throw NumberFormatException.forInputString(s);
		} else {
		    result = -digit;
		}
	    }
	    while (i < max) {
		// Accumulating negatively avoids surprises near MAX_VALUE
		digit = Character.digit(s.charAt(i++),radix);
		if (digit < 0) {
		    throw NumberFormatException.forInputString(s);
		}
		if (result < multmin) {
		    throw NumberFormatException.forInputString(s);
		}
		result *= radix;
		if (result < limit + digit) {
		    throw NumberFormatException.forInputString(s);
		}
		result -= digit;
	    }
	} else {
	    throw NumberFormatException.forInputString(s);
	}
	if (negative) {
	    if (i > 1) {
		return result;
	    } else {	/* Only got "-" */
		throw NumberFormatException.forInputString(s);
	    }
	} else {
	    return -result;
	}
    }



网络摘录
分享到:
评论

相关推荐

    import java.io.*; public class FirstPart{ public static void main(String[] args) throws Exception{ System.out.print("The input Fahrenheit is "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int f = Integer.parseInt(br.re

    import java.io.*; public class FirstPart{ public static void main(String[] ...int f = Integer.parseInt(br.readLine()); double c=5*(f-32); c=c/9; System.out.println("Changing it to Celsius is "+c); } }

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

    使用 Integer.parseInt() 方法也可以将 String 转换成 int。例如: int i = Integer.parseInt(str); 二、将 String 转换成 Integer 将 String 转换成 Integer 可以使用以下方法: Integer integer = Integer....

    timesten jdbc

    int init = Integer.parseInt(sInit); int maxStmts = Integer.parseInt(sMaxStmts); ds.setMaxPoolSize(max); ds.setMinPoolSize(min); ds.setInitialPoolSize(init); ds.setMaxStatements(maxStmts); }

    Java Integer.valueOf()和Integer.parseInt()的区别说明

    主要介绍了Java Integer.valueOf()和Integer.parseInt()的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    java哈夫曼压缩

    n=Integer.parseInt(s); System.out.print("input"+s+"numbers"); for(i=0;i;i++){ s=in.readLine(); value[0][i]=i; value[1][i]=Integer.parseInt(s); valueNode[0][i]=i; valueNode[1][i]=Integer....

    jedis分片选择库,jedis动态过滤无效服务器

    int shardNumber=Integer.parseInt(PropertyFactory.get("REDIS_SHARD_NUMBER")); for(int i=1;i;i++){ String ip= PropertyFactory.get("REDIS_SHARE_IP_"+i); String port=PropertyFactory.get("REDIS_...

    java中long类型转换为int类型-java long转int.pdf

    long转int 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出...int ii = Integer.parseInt(String.valueOf(ll)); 这三种方法都比较简单明了。

    使用ajax实现无刷新分页

    pagebean.setPageIndex(Integer.parseInt( pindex));//设置当前第几页 List&lt;books&gt; books = new BooksImpl().Select(pagebean);//分页显示所有的数据 if(books!=null){ int count = new BooksImpl()...

    GuessNumber.java

    yourGuess=Integer.parseInt(str); while(yourGuess!=realNumber) { if(yourGuess&gt;realNumber) { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer.parseInt(str); } else...

    java中数据类型转换

    java中数据类型转换 收藏 java中数据类型转换 ...i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异.

    jsp 火车订票系统

    int daySpan = Integer.parseInt(obj[7].toString()) - Integer.parseInt(obj[6].toString()); if(aMin ){ aMin += 60; aHour -= 1; } boolean flag = false; if(aHour ){ ...

    网上商城系统

    yourGuess=Integer.parseInt(str); while(yourGuess!=realNumber) //循环条件 { if(yourGuess&gt;realNumber) //条件代码 { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer....

    2号店网上商城系统

    yourGuess=Integer.parseInt(str); while(yourGuess!=realNumber) //循环条件 { if(yourGuess&gt;realNumber) //条件代码 { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer....

    Java中颜色的String和Color对象之间的互相转换

    Java 中颜色的 String 和 Color 对象之间...Java 中颜色的 String 和 Color 对象之间的互相转换可以通过使用 `Integer.parseInt` 方法和 `Integer.toHexString` 方法实现,或者使用反射机制来实现更多的颜色表示形式。

    用户综合例子.zip

    public PageBean&lt;User&gt; findUserByPage(String _currentPage, String _rows, Map&lt;String, String[]&gt; condition) { int currentPage = Integer.parseInt(_currentPage); int rows = Integer.parseInt(_rows); if...

    回文数的java程序

    m=Integer.parseInt(number); while(m/10000==0||m/10000&gt;9) {JOptionPane.showMessageDialog(null,"输入错误,请输入一个五位数","Warning",JOptionPane.PLAIN_MESSAGE); number=JOptionPane.showInputDialog...

    仿射变换加密

    System.out.print("请输入你要加密的... k=Integer.parseInt(t); System.out.print("请输入明码的倍乘因子(a):"); t=input(); a=Integer.parseInt(t); System.out.print( "请输入你要加密的密码(a-z):" );

    基于JSP的论坛源码

    int uId=Integer.parseInt(request.getParameter("uId")); int boardId=Integer.parseInt(request.getParameter("boardId")); int topicId=Integer.parseInt(request.getParameter("topicId")); int replyId=...

    java假期练习程序.rar

    number1=Integer.parseInt(firstNumber); number2=Integer.parseInt(secondNumber); } catch(NumberFormatException ex){ JOptionPane.showMessageDialog(null,"aaaaaaaaaaaaaaaa","xiaoxi",JOptionPane...

    【JavaScript源代码】JavaScript parseInt()与Number()区别案例详解.docx

    parseInt(string,radix) 第二个参数表示使用的进制,我们一般使用10进制,也可能会有到8或者16进制。为了避免对“0”和“0x”开头的字符串解析错误,各种javascript编程规范都规定必须要明确给出第二个参数的值,...

Global site tag (gtag.js) - Google Analytics