加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java:charAt转换为int?

发布时间:2020-12-14 23:39:44 所属栏目:Java 来源:网络整理
导读:我想输入我的nirc号码,例如S1234567I然后将1234567单独作为整数作为indiv1作为charAt(1),indiv2作为charAt(2),indiv作为charAt(3)等.但是,当我使用下面的代码时,我似乎无法得到均匀第一个数字?任何的想法? Scanner console = new Scanner(System.in); Syst
我想输入我的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.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读