以下是我的方案,虽然我已经达到了所需的输出但我希望它是一个不错的优化代码。
String arr[]={"we","er","rtt","yu","uu","ii"};
StringBuilder strcat = new StringBuilder();
for(int i1=0;i1<arr.length;i1++)
{
// Some processing
strcat.append(arr[i1]);
if(arr.length-1!=i1)
{
strcat.append(",");
}
}
System.out.println("Value:"+strcat);
我有String[]
数组和一些处理,处理后我想用逗号(,
)附加值。
问题是逗号,它也附加到最后的值,我不想要,我已经应用了一个逻辑。我不知道它是否正确。但是输出是正确的。如果我错了,请纠正我,并建议是否有任何其他方法可以实现。
答案 0 :(得分:13)
我在这里学到了很好的技巧
String SEPARATOR = "";
for(int i1=0;i1<arr.length;i1++)
{
// Some processing
strcat.append(SEPARATOR);
strcat.append(arr[i1]);
SEPARATOR = ",";
}
答案 1 :(得分:10)
答案 2 :(得分:0)
Java 8的流API允许更简洁的解决方案:
String result = Arrays.asList(arr).stream().collect(Collectors.joining(","));
答案 3 :(得分:0)
你可以这样做:
strcat.append(arr[0]);
for (int iCnt = 1;iCnt <arr.length;++iCnt) {
strcat.append(",").append(arr[iCnt]);
}
答案 4 :(得分:0)
我通常看到的两种方法是:
strcat.length() == 0
。答案 5 :(得分:0)
您可以先添加第0个数组元素(确保数组大小至少为1之后),然后在每个元素之前添加逗号,从1到长度为1。
或者您可以按照您的方式执行此操作,然后通过使用StringBuilder.setLength(int)
缩短缓冲区来删除最后一个逗号。