将数组转换为字符串时出错

时间:2015-02-15 08:03:05

标签: java arrays

所以我的程序打印一个数组但是当它执行时它还包括括号和逗号,我不想要那些。

这是我的图书馆

import java.util.*;
public class library2
{
        public static boolean IsPrime(int p)
        {
                for (int i = 2; i < p; i++)
                {
                        if (p % i == 0 && i != p)
                                return false;
                }
                return true;
        }
        public static List<List<Integer>> GetPrimes(int n)
        {
                List<Integer> arr = new ArrayList<Integer>();
                for (int j = 2; j < n; j++)
                {
                        if(IsPrime(j))
                        {
                                arr.add(j);
                        }
                }
                return Arrays.asList(arr);
        }
}

这是我的司机

import java.util.Scanner;
import java.util.*;
import java.util.Arrays;
public class driver2
{
        public static void main(String[] args)
        {
                Scanner scan = new Scanner(System.in);
                System.out.print("Please input an integer: ");
                int n = scan.nextInt();
                Boolean check = library2.IsPrime(n);
                List<List<Integer>> arr = library2.GetPrimes(n);
                System.out.println(Arrays.toString(arr));
        }
}

我已经尝试了Arrays.toString();方法但是在编译时遇到错误。我使用import java.util.Arrays;,但没有解决任何问题。有人可以帮我吗。

1 个答案:

答案 0 :(得分:1)

arr是一个列表而不是数组。

你应该迭代并打印:

     Iterator<List<Integer>>  arrIterator = arr.iterator(); 
     while (arrIterator.hasNext()) {
        List<Integer> l = arrIterator.next();
        Iterator<Integer> lIterator = l.iterator(); 
        while(lIterator.hasNext()){
          int i = lIterator.next();     
          System.out.print(i + " ");
        }
        System.out.print("\n");
    }