'parseInt(String,radix)'如何工作?

时间:2017-03-30 13:50:52

标签: java parseint

我知道parseInt方法用于将字符串转换为int,但我不知道如何。我明白,如果你说:

System.out.println(Integer.parseInt("52", 10));

将给你52基数10.我不知道的是,如果你说用15替换基数10,它是如何精确计算的。从一些研究中,我发现有人说你必须使用ASCII值。如果它有帮助,我试图能够单独在纸上解决这个问题,而无需更多代码的工作。

3 个答案:

答案 0 :(得分:6)

你是对的,数字代表基数。你是对的

  

Integer.parseInt("52", 10)会在基数10中给你52个。

这实际上将解析数字52 就像在基数10中一样。对于我们所知道的,52可能是基数为6.

例如:

Integer.parseInt("101", 2);

是说解析二进制(基数2)的数字1-zero-one。 说解析一百一十二进制二进制。这将返回基数为10的数字。

返回的任何数字都是标准整数,如果您尝试打印它将在基数10中。

值得注意的是,如果你尝试解析一个在该基数中不可能存在的数字,例如:

Integer.parseInt("599", 2);

然后你会得到一个例外。

答案 1 :(得分:3)

您正在解析的字符串可能位于特定的基础中,您使用radix命令提供该字符串以解析为int。 int是一个数值,本身没有特定的基数。

实施例

<ion-tabs>
  <ion-tab *ngFor="let tab of tabs" [root]="tab.root" [tabTitle]="tab.title" [tabIcon]="tab.icon"></ion-tab>
</ion-tabs>

答案 2 :(得分:2)

parseInt(String s, int radix)方法的工作原理如下:

  1. 检查radix参数。它应该在 范围2 - 36
  2. 对字符串的每个字符进行解析并验证为有效数字(在基数定义的范围内)
  3. 结果与radix相乘并逐步添加到结果变量
  4. 返回结果变量
  5. 算法非常简单。一项重要的工作是由验证数字是否有效的部分完成的。

    围绕此代码,有一些检查最终会导致NumberFormatException,例如在数字之前存在有效符号(+-),存在前导零,溢出等等。