【问题标题】:How can i remove the last "-" in the output?如何删除输出中的最后一个“-”?
【发布时间】:2025-12-24 13:30:10
【问题描述】:
    public static void main(String[] args) {
    int[] array = new int[6];

    for (int i = 0; i < array.length; i++) {
        array[i] = (int) (Math.random() * 90) + 1;
    }

    System.out.println("Dein Lottotipp lautet:");
    sort(array);
    printArray(array);
}

public static void sort(int[] array) {

    for (int i = 1; i < array.length; i++) {
        int sortieren = array[i];
        int j = i;
        while (j > 0 && array[j - 1] > sortieren) {
            array[j] = array[j - 1];
            j--;
        }
        array[j] = sortieren;

    }

}

public static void printArray(int[] array) {

    for (int i = 0; i < array.length; i++) {

        if (array[i] < array.length - 1) {
            System.out.print(array[i]);
        } else {
            System.out.print(array[i] + "-");
        }

    }
    System.out.println("");
}

如何删除输出中的最后一个“-”,我不是最好的 Java 程序员;输出应该是 27-28-37-73-75-81 ,但输出是这个 27-28-37-73-75-81-.,我需要删除最后一个 - 。有人可以把修改后的代码发给我吗?

【问题讨论】:

  • 一行法:System.out.println(Arrays.stream(array).mapToObj(String::valueOf).collect(Collectors.joining("-")));
  • 你为什么要删除你的源代码?你的问题不再有意义。由于缺乏必要的细节而投票结束。
  • @BasilBourque 我回滚了这个问题;故意破坏就是故意破坏。
  • 为什么你又删除了你的示例代码,这与@ElliottFrisch 对你之前删除的回滚相矛盾?您的删除会损坏您的问题,并使现有答案变得毫无意义。

标签: java arrays error-handling output


【解决方案1】:

要不打印最后一个 -,这行:if (array[i] &lt; array.length - 1) { 需要变为:if (i === array.length - 1)

目前,您正在将数组的内容与您当前正在处理的索引进行比较。比较数组的内容不会满足您的需要,因为您只对当前的迭代次数感兴趣。

【讨论】:

    【解决方案2】:

    String.join

    Answer by npinti 是正确的,并且专门回答了您的问题。

    这是使用String.join 功能的替代解决方案。这使用更少的代码。

    String result = String.join( "-" , List.of( array ) );
    

    【讨论】:

      【解决方案3】:

      npinti 发现了您的问题,您应该接受他的回答。

      但是,作为一个学习练习,您也可以考虑使用这种常用技术,即为数组的第一个 n-1 元素打印一个分隔符,然后只打印最后一个元素。

      public static void printArray(int[] array) 
      {
        if(array.length == 0) return;
      
        for(int i=0; i<array.length-1; i++) 
        {
          System.out.print(array[i] + "-");
        }
        System.out.println(array[array.length-1]);
      }
      

      【讨论】:

        【解决方案4】:

        创建你的字符串并在你输出它之前做

        String s = //Create your string and save it in s
        System.out.println(s.substring(0, s.length()-1));
        

        这将剪切字符串的最后一个字符。

        【讨论】: