【问题标题】:How to change elements in the ArrayList to a different object type?如何将 ArrayList 中的元素更改为不同的对象类型?
【发布时间】:2013-02-25 02:51:06
【问题描述】:

我有一个ArrayList<Character>。如何将数组中的元素更改为整数?代码是Java。

例子:

private ArrayList<Character> arrayList;

我试过这样Integer.parseInt()

Integer.parseInt(arrayList, arrayList.get(0));

parseInt 仅适用于字符串。

【问题讨论】:

  • 如果你想动态使用反射,它适用于所有类型。
  • 我从未听说过动态使用反射。请详细说明。 =]
  • 如果您不知道要转换为 Int 的对象的类型,则首先动态查找其类型,然后将相关方法或块传递给类型转换为 Int。

标签: java arraylist integer parseint


【解决方案1】:

看看docs,你可以使用.charValue()并将其转换为int

(int)(arrayList.get(0).charValue());

【讨论】:

  • +1 忽略我之前关于符号扩展的评论。 char 原语在扩大转换时零扩展(JLS 中的第 5.1.2 节)。
  • 由于某种原因,类型转换不起作用,但如果我省略 int 数据类型并将内容分配给整数变量,它就可以工作!
【解决方案2】:

您正在尝试将字符转换为 int,而 parseInt 方法仅适用于字符串。试试这个:

Integer.parseInt(arrayList.get(0).toString());

【讨论】:

  • 我得到一个 NumberFormatException。 =/
  • 您的输入是什么以及异常之前的完整 ArrayList?
  • 对于输入字符串:"[-, x, ^, 2, +, 2, x, -, 1, =, 0]" 它是从文件中读取的多项式。每个数组列表都有一个唯一的多项式。
  • 我会找到另一种方法。结果比我想象的要难。
  • 您可以做一件事。遍历 ArrayList,检查每个字符是否为数字,如果是,则将其转换为 int。您是否希望将 arraylist 中的所有数字字符更改为 int?你想把它们转换成一个新的数组列表吗?请回答这些问题,以便我可以编写新代码并在此处发布。
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2017-02-02
  • 2020-08-07
  • 2013-08-04
  • 2018-07-20
  • 2015-06-22
  • 2017-11-18
相关资源
最近更新 更多