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
答案 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