转换为String是最简洁的方法来删除java中输出中的最后一个逗号?

时间:2017-08-25 08:19:03

标签: java

所以基本上这就是我的代码的样子

public static void printPrime(int[] arr)
    {
        int len = arr.length;

        for(int i = 0; i < len; i++)
        {
            int c = countFactor(arr[i]);

            if(c == 2)
            {
             System.out.print(arr[i] + ",");
            }

        }
    }

所以输出确实有“逗号”。到底。我试着四处寻找删除最后一个逗号,一些答案说分别打印最后一个元素,但只有在输出依赖于for循环而不是if条件时才会发生。 但正如你所看到的,我不知道我将从 if condition 中获得多少元素。我只能想到两件事,添加另一个循环或使用String然后substr输出。

所以我将它转换为String

public static void printPrime(int[] arr)
    {
        int len = arr.length;
        String str = "";
        for(int i = 0; i < len; i++)
        {
            int c = countFactor(arr[i]);

            if(c == 2)
            {
              str = str + arr[i] + ",";
            }

        }
        str = str.substring(0, str.length()-1);
        System.out.println(str);
    }

我的问题是关于了解类似问题的最佳方式(转换为字符串然后对其进行子串?)或者是否有更好的方法?我似乎失踪了。

2 个答案:

答案 0 :(得分:2)

您不必构造字符串。考虑以下轻微调整:

public static void printPrime(int[] arr)
{
    int len = arr.length;
    String sep = "";    // HERE
    for(int i = 0; i < len; i++)
    {
        int c = countFactor(arr[i]);

        if(c == 2)
        {
         System.out.print(sep);  // HERE
         sep = ",";
         System.out.print(arr[i]);
        }

    }
}

首先打印分隔符,并将其值存储在变量中:第一次打印时,它将打印空字符串。此后,它会打印逗号。

答案 1 :(得分:1)

无论你使用什么方法都应该正确操作一个空数组(长度为0),一个单独的数组(长度为1)和一个长数组(一个大的长度)。

添加逗号然后删除它需要对空数组进行特殊处理。因此,无论你做什么,你都必须有条件代码(if语句)。