将字符串连接到数组列表中

时间:2016-12-09 14:17:38

标签: java arraylist string-concatenation

您好我正在尝试扫描数字1-113并执行以下操作

予。如果数字是奇数,则打印“x为奇数”

II。如果数字可被5整除,请打印“hi five”

III。如果数字(x)及其后续数字(x + 1)的总和是可被7整除的值,则打印“哇”

IV。如果数字是素数,则打印“prime”。

否则只是打印号码

这些语句中的每一个都应该用逗号分隔。这些函数必须保持原样以匹配提供的API,现在的问题是我的当前代码显示在不同的行上

1是奇数,

2,

3很奇怪,

何时显示如下

1是奇数,Prime,

2,

3是奇数,Prime,哇

如果您对如何继续表示感谢,我将不胜感激。

     import java.util.ArrayList;
        public class Number 

{

    //check if by number is prime   
    public static boolean isPrime(int n){
        //check if n is a multiple of 2
        if (n%2==0) return false;
        //if not, then just check the odds
        for(int i=3;i*i<=n;i+=2) {
            if(n%i==0)
                return false;
        }
        return true;
    }

    //check if number is odd
    public static boolean isOdd(int n){
        if(n % 2 == 0){
            return false;
        }
        return true;    
    }

    //checks if number is divisible by 5
    public static boolean isDivisibleBy5(int n){
        if(n % 5 == 0){
            return true;
        }
        return false;       
    }

    //checks if number is divisible by 7
    public static boolean isDivisibleBy7(int n){
        if(n % 7 == 0){
            return true;
        }
        return false;       
    }
    //Each number from 1 to 113 is checked and if
    public static ArrayList<String> iterate(){
        //initialize arraylist of strings
        ArrayList<String> al = new ArrayList<String>();
        //for each number between 1 and 113 do the following
        for(int i=1; i< 113; i++){
            if (isOdd(i) == true){
                al.add(i+" is odd, ");
            }
            else{
                al.add(i+", ");
            }
            if (isDivisibleBy5(i) == true){
                al.add(" high 5, ");
            }
            if(isPrime(i) == true){
                al.add("Prime");
            }
            if(isDivisibleBy7(i+(i+1))==true ){
                al.add("wow");
            }

        }

        return al;

    }
    public static void main(String[] args) {
        ArrayList<String> numbers;
        numbers = iterate();

        for(int i=0;  i < numbers.size(); i++){ 
            System.out.println(numbers.get(i));
        }
    }

}

2 个答案:

答案 0 :(得分:1)

您使用的是System.out.println,而您需要使用System.out.print

答案 1 :(得分:0)

因此,如果您尝试描述具有多个属性的数字,那么您就无法正确执行此操作。

list.add(i+"something");
list.add("Prime");

创建

{"isomething", "Prime"}

什么时候你想要它

{"isomething,Prime"}

但是你每次打电话时所做的就是将列表增加1个元素.add

尝试更改为

    for(int i=1; i< 113; i++){
        String numberString = "" + i;
        if (isOdd(i) == true){
            numberString += ", is odd";
        }
        else{
            numberString += ",";
        }
        if (isDivisibleBy5(i) == true){
            numberString += ", is even"
        }
        if(isPrime(i) == true){
            numberString += "Prime";
        }
        if(isDivisibleBy7(i+(i+1))==true ){
            numberString += "wow";
        }
        al.add(numberString);
    }