【发布时间】:2017-12-01 07:18:47
【问题描述】:
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 );
我想删除最后一个逗号,我使用子字符串,我怎样才能使这段代码变得更好?
使用字符串实用方法(例如“StringUtil.join”)连接数组或集合对象中的元素。请参阅“StringUtil API 的 StringUtil.join”条目。
例如:
StringUtils.join(["e", "f", "g"], "--") // => "e--f--g
【问题讨论】:
-
如果您只想添加逗号,请使用长度为 -2 的简单 for 循环
-
你可以用
String.join做任何事情 -
你可以做
result.setLength(result.length() - 1)。或者,不是使用简单的for循环,您可以获取solList.iterator()并“手动”循环它(while (iterator.hasNext()) { ...),这样您就可以在循环中检查是否有下一个元素——这样您就可以如果您在最后一个元素,请不要添加逗号开头。 (或者,正如 ajb 指出的那样,使用为您执行此操作的库调用。) -
要删除最后一个
,,请执行result.delete(result.length()-2,result.length()); -
@JaySmith 请注意,他在每个元素之间附加了两个字符——逗号和空格——因此您的代码将删除最后一个空格,但不会删除逗号。