当前位置: 首页 > 面试题库 >

Java:charAt转换为int吗?

于飞飙
2023-03-14
问题内容

我想输入我的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。

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



 类似资料:
  • 问题内容: 我想对成绩簿方法使用2D数组,其中包含学生姓名,然后是考试成绩。在课堂上,我有以下内容。 但是我得到一个错误int []无法转换为int。 问题答案: 你有: 但是是一个。数组维数必须为,因此不能用作数组维数(鉴于字面量是多少,我可以理解您对错误的困惑:它想要一个,但您给了它一个)。 从您的描述来看,我猜您的意思是: 哪里是你需要的,包含考试的次数。不过,只是一个猜测。

  • 问题内容: 这里是编程的新手,并且我一直收到错误消息,“不兼容的类型,不能将int转换为int []”,问题是如果R1和R2的长度相等,则将它们加在一起,如果没有打印出一条信息,说明“数组的长度必须相同”,如果这很重要,则不知道我在哪里出错,将不胜感激任何帮助 问题答案: 您需要分配给数组元素,但是这样做做错了。

  • 我刚开始编程,我总是收到错误消息,“不兼容的类型,int不能转换为int[]”,问题是如果R1和R2的长度相等,就把它们加在一起,如果不是,打印一条消息,说“数组必须是相同的长度”,如果这很重要,不确定我在哪里出错了,任何帮助都将非常感谢

  • 问题内容: 将数组元素复制到其中的最佳方法是什么? 我需要快速执行此操作,所以最快的方法是什么? 问题答案: 利用创建 “(通过写‘到数组中。更改到返回的列表)’由指定数组支持的固定大小的列表。” 或者,解耦两个数据结构: 或更简洁:

  • 问题内容: 我正在尝试从JSON获取值并将其强制转换为int,但它不起作用,而且我不知道如何正确执行。 这是错误消息: 和代码: 问题答案: 代替 你想要一个类型断言: 您不能转换接口类型值的原因是参考的规范部分中的以下规则: 转换是形式的表达式,其中是类型,并且是可以转换为类型T的表达式。 … 在以下任何一种情况下,可以将非恒定值x转换为类型T: x可分配给T。 x的类型和T具有相同的基础类型。

  • 问题内容: 我在下面的查询中,需要转换为 架构图 我尝试了什么 但它们不起作用。请提出建议。 问题答案: 您将需要或作为数据类型,没有可以将数据强制转换/转换为以下数据的数据类型: 请参阅下面的SQL(实际上)在SQL Fiddle中 : 除了您试图转换为不正确的数据类型外,您所使用的语法也不正确。该函数使用以下列或值: 要么 您的原始查询的语法向后。