【问题标题】:How to output a list of numbers in an Arraylist without outputting the Brackets and Commas?如何在不输出括号和逗号的情况下输出 Arraylist 中的数字列表?
【发布时间】:2015-06-08 02:33:47
【问题描述】:

我有以下代码用于帮助我找到 1 和用户输入的任何内容之间的质数。唯一的问题是,我必须输出没有括号和逗号的数字。我该怎么做?

    System.out.println("\nLab1la\n");
    Scanner input = new Scanner(System.in);
    System.out.println("Enter the primes upperbond ==>> ");
    final int MAX = input.nextInt();
    boolean primes[];
    primes = new boolean[MAX];

    ArrayList<Integer>PrimeFactor = new ArrayList<Integer>();
    for (int i = 2; i < MAX + 1 ; i++)
    {
        PrimeFactor.add(i); 
    }


    CompositeNumbers(PrimeFactor);
    System.out.println("COMPUTING RIME NUMBERS");
    System.out.println();
    System.out.println("PRIMES BETWEEN 1 AND " + MAX);
    System.out.print(PrimeFactor);

}

public static void CompositeNumbers(ArrayList<Integer> PrimeFactor)
{
    for (int i = 0; i < PrimeFactor.size(); i++)
    {
        if (!isPrime(PrimeFactor.get(i)))
        { 
            PrimeFactor.remove(i);
            i--;

        }
    }
}

public static boolean isPrime(int n)
{
    if(n==1)
    {
        return true;
    }
    for (int i = 2; i < n +1/2; i++)
    {
        if (n%i == 0)
        {
            return false;

        }
    }
    return true;

}

}

【问题讨论】:

  • 也许使用 for 循环而不是仅仅将整个 ArrayList 传递给 System.out
  • 我不太清楚你的意思,你能再解放一点吗?

标签: java arraylist bluej


【解决方案1】:

只需依次输出每个值。例如:

// TODO: Rename PrimeFactor to primeFactors to follow Java naming conventions
for (int value : PrimeFactor)
{
    System.out.print(value);
    System.out.print(" "); // Or whatever separator you want
}

(这将在最后输出一个额外的空间;摆脱它有点繁琐,但不太难......)

或者使用 Guava 的 Joiner 类:

System.out.println(Joiner.on(' ').join(PrimeFactor));

【讨论】:

  • 以下工作,但我怎样才能将它添加到它可以输出“Prime Numbers”,即 CompositeNumbers(PrimeFactor)。所有输出都是数字 2 到 n。
  • @Bob:我不明白你的意思。您的问题是如何输出默认实现中没有括号和逗号的列表内容。如果列表不包含您想要的数字,那就是完全不同的问题了。
  • 抱歉造成误会。我把'CompositeNumbers(PrimeFactor);'就在 'system.out.println(PrimeFactor)' 之前,因为它给了我素数。我放了你的代码,我似乎只得到了 ArrayList PrimeFactor 会给我的东西。我将如何调整代码,以便在没有逗号和括号的情况下输出 CompositeNumbers 值。
  • 很抱歉给您带来了困惑
  • @Bob:你还是会打电话给CompositeNumbers。我并不是建议替换 all 您的代码 - 只是打印出 PrimeNumbers 的那部分代码 - 您当前的 System.out.print(PrimeFactor); 行。
【解决方案2】:

只需使用System.out.print(" ");。我相信它会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-25
    • 2021-10-31
    • 2015-12-22
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    相关资源
    最近更新 更多