【问题标题】:print range of integers in descending or ascending order in java在java中以降序或升序打印整数范围
【发布时间】:2010-02-11 05:36:21
【问题描述】:

我有一个上限和一个下限,我想返回包括边界在内的边界之间的所有数字。我知道python有一个范围函数,但我确定java是否有这个方法。

【问题讨论】:

  • 是数组中的数字...你能详细说明一下吗
  • 不,他有一个上限和一个下限。他已经说过了。
  • 所以我要求用户输入上限和下限。使用这些变量,我试图打印该范围内的所有数字。使用 while 或 for 循环有帮助吗?
  • while (lower

标签: java range integer


【解决方案1】:

您可以只使用 for 循环。您要打印还是退回?您的标题和问题对此不同意。如果要返回它们,则需要选择用于包含它们的类型。

List<Integer> ret = new ArrayList<Integer>();
for (int i = lower; i <= upper; i++) {
    ret.add(i);
}
return ret;

我将把它作为一个练习来打印它们,或者按降序排列。

【讨论】:

  • 对不起,我想打印它们。但我知道该怎么做: System.out.print(i + " ");谢谢小伙伴的帮助! :D
【解决方案2】:

如果你有一个整数数组,你可以在 Apache Commons Lang 中使用 IntRange

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/math/IntRange.html

IntRange ir = new IntRange(int lower, int upper);
ir.toString();

您可以在此处使用的各种 Range 的更多信息:

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/math/class-use/Range.html

【讨论】:

    【解决方案3】:

    编辑:我完全过度阅读了这个问题。我看到了一个 IntRange 实用程序的建议,我只是认为这是我经常听到的经典“我想要一个 Iterable”请求。所以请忽略以下内容。

    简化(没有错误检查):

    public static List<Integer> range(final int start, final int end) {
      return new AbstractList<Integer>() {
        public int size() {
          return end - start + 1;
        }
        public Integer get(int i) {
          return start + i;
        }
      };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多