Java:charAt转换为int?

前端之家收集整理的这篇文章主要介绍了Java:charAt转换为int?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想输入我的nirc号码,例如S1234567I然后将1234567单独作为整数作为indiv1作为charAt(1),indiv2作为charAt(2),indiv作为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.

我不确定后一种方法是否会涵盖非西方数字 – 第一种肯定不会 – 但听起来这不会是你的问题.

原文链接:https://www.f2er.com/java/127409.html

猜你在找的Java相关文章