Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除最后的符号? List-solList=newarraylist(); 添加(“num1”); 添加(“num2”); StringBuilder结果=新建StringBuilder(); for(字符串a:solList) { 结果.追加(a).追加(“,”); } 字符串withoutLastComma=result.substring(0,result.length()-“, “.length()); System.err.println(带OutlastComma);_Java_String - Fatal编程技术网

Java 如何删除最后的符号? List-solList=newarraylist(); 添加(“num1”); 添加(“num2”); StringBuilder结果=新建StringBuilder(); for(字符串a:solList) { 结果.追加(a).追加(“,”); } 字符串withoutLastComma=result.substring(0,result.length()-“, “.length()); System.err.println(带OutlastComma);

Java 如何删除最后的符号? List-solList=newarraylist(); 添加(“num1”); 添加(“num2”); StringBuilder结果=新建StringBuilder(); for(字符串a:solList) { 结果.追加(a).追加(“,”); } 字符串withoutLastComma=result.substring(0,result.length()-“, “.length()); System.err.println(带OutlastComma);,java,string,Java,String,我想删除最后一个逗号,我使用子字符串,我如何才能变得更好这段代码 使用字符串实用程序方法(如“StringUtil.join”)连接数组或集合对象中的元素。请参阅“StringUtil API的StringUtil.join”条目 例如: StringUtils.join([“e”、“f”、“g”],“--”)/=>“e--f--g下面是获取逗号分隔列表的方法之一: List<String> solList = new ArrayList<String>( ); solL

我想删除最后一个逗号,我使用子字符串,我如何才能变得更好这段代码

使用字符串实用程序方法(如“StringUtil.join”)连接数组或集合对象中的元素。请参阅“StringUtil API的StringUtil.join”条目

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

下面是获取逗号分隔列表的方法之一:

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 );
StringBuilder结果=新建StringBuilder();
int size=0;
如果(solList!=null&&(size=solList.size())>0)
{
result.append(solList.get(0));

对于(int i=1;i有很多方法可以实现这一点。Java 8已经在
String
中提供了一个
join
方法,该方法将在列表或数组中的字符串与每对元素之间的固定字符串连接起来

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

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));
    }
 }
我不会在这里使用它,但这种模式在很多情况下都会出现


这与denis的答案基本相同,只是表达方式略有不同。

列表到逗号分隔字符串

逻辑1:

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

StringBuilder result = new StringBuilder();
boolean first = true;
for ( String a : solList )
{
    if (!first) {
        result.append(", ");
    }
    result.append(a);
    first = false;
}
StringJoiner可用于使用收集器创建流的格式化输出。连接(CharSequence)。例如:

A,B,C,D

如果您只想添加逗号,请使用长度为-2的简单for循环。您可以使用它做任何事情,只需执行
result.setLength(result.length()-1)
。或者,您可以获得
solList.iterator()
并“手动”在其上循环(
while(iterator.hasNext()){…
),这使您可以检查循环中是否有下一个元素——因此,如果您位于最后一个元素,就不能添加逗号开头。(或者,正如ajb所指出的,使用为您执行此操作的库调用。)要删除最后一个
,请执行
result.delete(result.length()-2,result.length())
@JaySmith注意,他在每个元素之间添加了两个字符——逗号和空格——因此代码将删除最后一个空格,而不是逗号。唯一的缺陷是它不处理空列表。注释的Thanx使用
if(!solList.isEmpty())
,并使其适用于空列表。虽然这不是一个很好的解决方案,但它可以工作。感谢您的评论。我更新了我的解决方案。
 List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
 String commaSeparatedNumbers = numbers.stream()
     .map(i -> i.toString())
     .collect(Collectors.joining(", "));
1,2,3,4