当前位置: 首页 > 知识库问答 >
问题:

是否有更好的方法将String数组转换为整数数组?

袁青青
2023-03-14

每次需要整数数组时,我都会使用以下代码:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
int[] a =new int[str.length];
int j = 0;
for(String i : str)
  a[j++]=Integer.parseInt(i);

我使用BufferedReader而不是Scanner来降低输入过程中的时间复杂度。然而,当数组大小相对较大时,我想知道这种方法是否比Scanner有效(

共有2个答案

子车凯泽
2023-03-14

根据我的经验,StringTokenizer的性能优于调用split。之后,我用同样的方法将令牌转换为整数。我认为这是在一行上输入一系列整数的最佳方法。下面是一个讨论和衡量不同方法的线索。

我还想指出,这是大多数编程竞争对手使用的方法,如传奇人物彼得·米特里切夫,因此我相信它是尽可能好的。

诸葛煜
2023-03-14

java 8非常简单,只有一行:

int[] a = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
 类似资料:
  • 问题内容: 概述Java程序如何将诸如“ 1,2,3,4,5”之类的字符串转换为数组({1,2,3,4,5}) 问题答案: 从zvzdhk: 然后,解析您的整数:

  • 问题内容: 我有一个输入字符串,将 要么 是JSON数据包,鼻翼: 或查询字符串,ala: 就我的目的而言,我需要 _ 始终 使用后一种格式。因此, _当 它是JSON数据时,我需要将其转换为查询字符串。这是用户输入的内容,因此我不能保证它会是另一个。 我正在使用jQuery,并且具有下面的代码,可以正常工作。我只是想知道是否有更好的方法来解决这个问题。 这里的逻辑是,如果字符串不是有效的JSON

  • 问题内容: 我有一个Swift程序,可以与C库互操作。这个C库返回一个内部带有数组的结构,如下所示: 该定义已正确导入到Swift中。但是,该字段被解释为8个元素(类型为)的 元组 ,我不知道如何使用Swift 将其转换为a 。 没有可以接受元组的初始化程序,并且似乎不可能获得指向元组的第一个元素的指针(因为类型可以是异构的,这并不奇怪)。 现在,我最好的主意是创建一个微型C函数,该函数接受指向结

  • 问题内容: 我有一个接收a的函数,但是我所拥有的a是进行此转换的最佳方法是什么? 我想我可以走很长一段路,然后将其放入字符串并放入字节中,但这听起来很难看,而且我认为还有更好的方法可以做到。 问题答案: 我同意Brainstorm的方法:假设您要传递机器友好的二进制表示形式,请使用该库。OP建议可能会有一些开销。纵观源的实施,我看到它做了一些运行时的决策最大的灵活性。 对?Write()接受一个非

  • 问题内容: 因此基本上,用户是从扫描仪输入中输入序列。 等等。 它可以是任意长度,并且必须是整数。 我想将输入的字符串转换为整数数组。 所以会,就等 有什么提示和想法吗?我正在考虑实现获取先前的编号并将它们解析在一起,并将其应用于数组中的当前可用插槽。但是我不太确定如何编写代码。 问题答案: 您可以从扫描仪中读取整个输入行,然后将其分开,然后得到一个,将每个数字解析为与索引一对一匹配的…(假设输入

  • 查找C++标准,我们有 C++17§6.9.2/3[碱化合物] 3指针类型的每个值都是下列值之一: null C++标准似乎没有更多地说明整数到指针的转换。查阅C17标准: C17§6.3.2.3/5(强调地雷) 整数可以转换为任何指针类型。除了前面指定的,结果是实现定义的,可能没有正确对齐,可能没有指向引用类型的实体,并且可能是一个陷阱表示。68) 对我来说,似乎任何不适合[basic.comp