在 class、java 中创建字符串

make string in a class, java

我想制作一个字符串,这样我就可以在打印语句中打印 formatArray() 了。但我不确定如何制作一串这样的字符串,并阻止它自己打印信息。 这是我想用的句子; system.out.println("your numbers are"+formatArray())


这是我的代码。

 public static void formatArray(int[] tallrekke){
     for(int i=0; i<tallrekke.length; i++){
         if(i>0 && i < tallrekke.length -1) {
             System.out.print(", ");
         }
         else if (i> tallrekke.length -2) {
             System.out.print(" og ");
         }
         System.out.print(tallrekke[i]);
    }
}
public static String formatArray(int[] tallrekke) {
    String s = "";

    for (int i = 0; i < tallrekke.length; i++) {
        if (i > 0 && i < tallrekke.length - 1) {
            s += ", ";
        } else if (i > tallrekke.length - 2) {
            s += " og ";
        }
            s += tallrekke[i];
        }

    return s;

}

它将带来您所有的打印报表。但是,我更愿意使用 StringBuilder 而不是 String。这意味着您的代码将如下所示

public static String formatArray(int[] tallrekke) {
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < tallrekke.length; i++) {
        if (i > 0 && i < tallrekke.length - 1) {
            sb.append(", ");
        } else if (i > tallrekke.length - 2) {
            sb.append(" og ");
        }
            sb.append(tallrekke[i]);
        }

    return sb.toString();

}

首先,您需要将方法的 return 类型设置为 String 而不是 void。然后你应该使用 StringBuilder 创建一个字符串。

public static String formatArray(int[] tallrekke) {
    StringBuilder stringBuilder = new StringBuilder();
    for(int tall : tallrekke){
        stringBuilder.append(tall);
    }
    return stringBuilder.toString();
}

将您的方法 return 设为字符串:

public static String formatArray(int[] tallrekke){
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<tallrekke.length; i++){
        if(i>0 && i < tallrekke.length -1) {
            sb.append(", ");
        }
        else if (i> tallrekke.length -2) {
            sb.append(" og ");
        }
        sb.append(tallrekke[i]);
   }
    return sb.toString();
   }

public static void main( String[] args) {

    int[] tab = {1,2,3};
    System.out.println( formatArray( tab ) );

}

输出:

1, 2 og 3

也许可以使用 'return' 而不是 System.out.print 然后你可以打印任何函数 returns

public String formatArray(int[] tallrekke){
    for(int i=0; i<tallrekke.length; i++){
        if(i>0 && i < tallrekke.length -1) {
            return ", ";
        }
        else if (i> tallrekke.length -2) {
            return  " og ";
        }
        return  String.valueOf(tallrekke[i]);
    }
}

尽管您的预期输出不明确,但这就是您所需要的:

public static String formatArray(int[] tallrekke){
    StringBuilder stringBuilder = new StringBuilder();
    for(int i=0; i<tallrekke.length; i++){
        if(i>0 && i < tallrekke.length -1) {
            stringBuilder.append(", ");
        }
        else if (i> tallrekke.length -2) {
            stringBuilder.append(" og ");
        }
        stringBuilder.append(tallrekke[i]);
    }
    return stringBuilder.toString();
}

你应该通过参数调用这个方法:

int[] tallrekke = {0,1,2};
System.out.println("your numbers are"+formatArray(tallrekke));

与您的解决方案类似

public class Main {
    public static void main (String[]args) throws IOException, ParseException {
        int[] nums = {1,2,3,4,5};
        System.out.println("your numbers are "+formatArray(nums));
    }

    public static String formatArray(int[] tallrekke){
        String result = "";
        for(int i=0; i<tallrekke.length; i++){
            if(i>0 && i < tallrekke.length -1) {
                result +=  ", ";
            }
            else if (i> tallrekke.length -2) {
                result += " og ";
            }
            result +=tallrekke[i];
        }
        return result;
    }
}

输出是

your numbers are 1, 2, 3, 4 og 5

紧凑格式数组方法:

 public static String formatArray(int[] tallrekke){
        String result = "";
        for (int i = 0; ; i++) {
            result +=tallrekke[i];
            if (i == tallrekke.length-1)
                return result;
            result+= i==tallrekke.length-2?" og ":", ";
        }
    }

您的 formatArray 方法应该 return 字符串。字符串在 forLoop 内连接。