Java:charAt转换为int吗?
我想输入我的nirc
数字,例如S1234567I
,然后将1234567
个体作为整数,例如indiv1
as
charAt(1)
,indiv2
as charAt(2)
,indiv
as
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