如何删除最后一个符号


List<String> solList = new ArrayList<String>( );
solList.add( "num1" );
solList.add( "num2" );
StringBuilder result = new StringBuilder();
for ( String a : solList )
{
result.append( a ).append( ", " );
}
String withoutLastComma = result.substring( 0, result.length( ) - ", 
".length( ) );
System.err.println( withoutLastComma );

我想删除最后一个逗号,我使用子字符串,如何变得更好?

使用字符串实用方法,例如" strignutil.join"来在数组或集合对象中的串联元素。咨询" Stringutil Api的Stringutil.join"条目。

例如: StringUtils.join(["e", "f", "g"], "--") // => "e--f--g

以下是您可以获得逗号分隔列表的方式:

StringBuilder result = new StringBuilder();
int size = 0;
if(solList!=null && (size=solList.size())>0)
{
   result.append(solList.get(0));
   for ( int i=1;i<size;i++ )
   {
        result.append( ", " ).append(solList.get(i));
    }
 }

有多种方法可以实现这一目标。Java 8已经在String中提供了join方法,该方法将在列表中连接字符串或在每对元素之间带有固定字符串的数组。

这是另一种方式。我将其包括在其他阵列/列表遍历案例中是一个有用的成语,不一定涉及字符串和分离器:

StringBuilder result = new StringBuilder();
boolean first = true;
for ( String a : solList )
{
    if (!first) {
        result.append(", ");
    }
    result.append(a);
    first = false;
}

我不会在这里使用它,但是这种模式在许多情况下出现。

这基本上与丹尼斯的回答相同,只是以稍微不同的方式表达。

列表到逗号分隔字符串使用Java 8请参阅String.join((

逻辑1:

import java.util.Arrays;
import java.util.List;
public class TestApp2 {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("A", "B", "C", "D");
        String result = String.join(",", list);
        System.out.println(result);
    }
}

输出:

A,B,C,D

逻辑2:

可以使用collector.joining(char sequence(从流来创建弦乐器。例如:

 List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
 String commaSeparatedNumbers = numbers.stream()
     .map(i -> i.toString())
     .collect(Collectors.joining(", "));

输出:

1,2,3,4

最新更新