如何删除最后的符号?

时间:2017-06-28 04:41:34

标签: java string

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 );

我想删除最后一个逗号,我使用子字符串,我怎样才能使这段代码更好?

使用字符串实用程序方法,例如&#34; StringUtil.join&#34;连接数组或集合对象中的元素。请参阅&#34; StringUtil API的StringUtil.join&#34;条目。

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

3 个答案:

答案 0 :(得分:4)

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

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));
    }
 }

答案 1 :(得分:0)

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

这是另一种方式。我把它作为一个答案,因为它在其他数组/列表遍历情况下是一个有用的习惯用法,不一定涉及字符串和分隔符:

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

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

这基本上和丹尼斯的回答一样,只是用稍微不同的方式表达。

答案 2 :(得分:0)

列表以逗号分隔的字符串 https://github.com/ipernet/gitlab-docs/blob/master/gitlab-registry.md 请参阅Using java 8

逻辑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:

可以使用StringJoiner使用Collectors.joining(CharSequence)从Stream创建格式化输出。例如:

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

输出:

1,2,3,4