【问题标题】:How to convert an ArrayList of Strings to integers without any library methods?如何在没有任何库方法的情况下将字符串的 ArrayList 转换为整数?
【发布时间】:2019-08-29 05:21:17
【问题描述】:

我想在 Java 中将字符串的 ArrayList 转换为整数。

我的尝试:

ArrayList number = new ArrayList(Arrays.asList("45","9","77"))
int res = 0;
System.out.println(res);
for (int i = 0; i < number.size(); i++) {
    res = res * 10 + number.charAt(i) - '0';
}           

【问题讨论】:

  • “整数”是什么意思?
  • 到 int 像 45,9,77
  • list.stream().map(Integer::valueOf).collect(toList())
  • List stringNumberList = new ArrayList(Arrays.asList("45","9","77")) int res = 0; for (String s : stringNumberList) { res = Integer.parseInt(s); System.out.println(res); } }

标签: java


【解决方案1】:

你在这里遗漏了一些东西。您有一个ListStrings,您应该分别迭代每个Strings 的字符,以便将其转换为int。这意味着您需要两个嵌套循环。

虽然有更简单的方法(使用Integer.parseInt()),但这里有一个基于原始代码逻辑的实现:

List<String> numbers = Arrays.asList("45","9","77");
List<Integer> output = new ArrayList<>();
for (String number : numbers) {
    int res = 0;
    for (int i = 0; i < number.length(); i++) {
        res = res * 10 + (number.charAt(i) - '0');
    }  
    output.add(res);         
}
System.out.println (output);

输出:

[45, 9, 77]

【讨论】:

  • 不清楚他是指一个单一的 int 还是一个 int/Integer 的列表。使用一个 Stream -> map (r -> return Integer.parseInt(r)) 他也许可以做他想做的事
  • @Stultuske 我知道每个字符串都应该单独转换为 int,并且 OP 的评论证实了这一点。
  • 那么为什么需要嵌套循环呢?使用流迭代一次并返回整数值,然后收集到列表中应该这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 2017-11-02
  • 2011-04-28
  • 1970-01-01
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多