【问题标题】:How do you find the average of the max and min value in a String?你如何找到字符串中最大值和最小值的平均值?
【发布时间】:2020-01-02 17:02:53
【问题描述】:

我目前正在用 Java 中的字符串进行试验。

例如,您有一个字符串"1234 Hello 56789",现在您要计算最大值和最小值的平均值,即(1234/5678)/2 = 58023

你是怎么做到的?

我尝试了Integer.parseInt,但出现了错误。

我试过replaceAll("[^0-9]", ""),它没有得到最小值和最大值,因此没有得到平均值。它输出我不想要的 123456789。

我也尝试了replaceAll("[^0-9]", "").split("\\D+"),它只给了我1234 56789,但我不知道如何获得最小值和最大值。

【问题讨论】:

  • 我会从忘记最小、最大、平均部分开始。相反,专注于“如何从字符串中提取数字”?一旦你完成了那部分,剩下的就是简单的数学。您可能想考虑一下您的字符串是否可以包含非整数,是否要允许在数字中使用千位分隔符等。
  • @Jon Skeet,关于非整数值的语言环境表示非常困难。我们如何预测数字 1,0 与 1.0 是什么?或 1_000 而不是 1.000 或 1,000.00?没那么简单,不是吗?
  • @zlakad:不,这绝对不简单。但这正是 OP 在定义他们的要求时应该问自己的事情。

标签: java


【解决方案1】:

我也试过replaceAll("[^0-9]", "").split("\\D+")

这是很好的第一步。它会给你一个字符串数组(String[])。然后将其转换为int[] 可能是个好主意。见Converting a String array into an int Array in java

一旦你有了int[],你就可以通过参考Finding the max/min value in an array of primitives using Java来计算最大值和最小值

顺便说一下,平均值不是 (1234/5678)/2。是 (1234 + 5678)/2

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 2013-12-23
    • 2017-03-08
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    相关资源
    最近更新 更多