Java:charAt转换为int吗?

我想输入我的nirc数字,例如S1234567I,然后将1234567个体作为整数,例如indiv1as

charAt(1)indiv2as charAt(2)indivas

charAt(3)等等。但是,当我使用下面的代码时,我似乎连第一个数字都看不出来?任何想法?

  Scanner console = new Scanner(System.in);

System.out.println("Enter your NRIC number: ");

String nric = console.nextLine();

int indiv1 = nric.charAt(1);

System.out.println(indiv1);

回答:

您将得到49、50、51等-这些是字符“ 1”,“ 2”,“ 3”等的Unicode代码点。

如果您 知道 它们将是西数,则可以减去“ 0”:

int indiv1 = nric.charAt(1) - '0';

但是,只有在已经在其他地方验证该字符串的格式正确之后,才应执行此操作-否则,最终将得到虚假数据-例如,“ A”最终将返回17而不是导致错误。

当然,一种选择是获取值,然后检查结果是否在0-9范围内。一种替代方法是使用:

int indiv1 = Character.digit(nric.charAt(1), 10);

如果字符不是适当的数字,则将返回-1。

我不确定这后一种方法是否会覆盖非西方数字-第一种当然不会-但听起来对您而言这不会成为问题。

以上是 Java:charAt转换为int吗? 的全部内容, 来源链接: utcz.com/qa/426580.html

回到顶部