方法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[] ...int f = Integer.parseInt(br.readLine()); double c=5*(f-32); c=c/9; System.out.println("Changing it to Celsius is "+c); } }
使用 Integer.parseInt() 方法也可以将 String 转换成 int。例如: int i = Integer.parseInt(str); 二、将 String 转换成 Integer 将 String 转换成 Integer 可以使用以下方法: Integer integer = Integer....
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()的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
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....
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_...
long转int 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出...int ii = Integer.parseInt(String.valueOf(ll)); 这三种方法都比较简单明了。
pagebean.setPageIndex(Integer.parseInt( pindex));//设置当前第几页 List<books> books = new BooksImpl().Select(pagebean);//分页显示所有的数据 if(books!=null){ int count = new BooksImpl()...
yourGuess=Integer.parseInt(str); while(yourGuess!=realNumber) { if(yourGuess>realNumber) { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer.parseInt(str); } else...
java中数据类型转换 收藏 java中数据类型转换 ...i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异.
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>realNumber) //条件代码 { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer....
yourGuess=Integer.parseInt(str); while(yourGuess!=realNumber) //循环条件 { if(yourGuess>realNumber) //条件代码 { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer....
Java 中颜色的 String 和 Color 对象之间...Java 中颜色的 String 和 Color 对象之间的互相转换可以通过使用 `Integer.parseInt` 方法和 `Integer.toHexString` 方法实现,或者使用反射机制来实现更多的颜色表示形式。
public PageBean<User> findUserByPage(String _currentPage, String _rows, Map<String, String[]> condition) { int currentPage = Integer.parseInt(_currentPage); int rows = Integer.parseInt(_rows); if...
m=Integer.parseInt(number); while(m/10000==0||m/10000>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):" );
int uId=Integer.parseInt(request.getParameter("uId")); int boardId=Integer.parseInt(request.getParameter("boardId")); int topicId=Integer.parseInt(request.getParameter("topicId")); int replyId=...
number1=Integer.parseInt(firstNumber); number2=Integer.parseInt(secondNumber); } catch(NumberFormatException ex){ JOptionPane.showMessageDialog(null,"aaaaaaaaaaaaaaaa","xiaoxi",JOptionPane...
parseInt(string,radix) 第二个参数表示使用的进制,我们一般使用10进制,也可能会有到8或者16进制。为了避免对“0”和“0x”开头的字符串解析错误,各种javascript编程规范都规定必须要明确给出第二个参数的值,...