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. 我不确定后一种方法是否会涵盖非西方数字 – 第一种肯定不会 – 但听起来这不会是你的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |