Java-在循环中打印逗号
我遇到了这样一个问题,如果要循环一个数组并打印出以逗号分隔的内容,它会在最后打印出一个额外的内容。 我做了一些搜索,但找不到适合这种情况的答案 代码:Java-在循环中打印逗号,java,arrays,loops,output,Java,Arrays,Loops,Output,我遇到了这样一个问题,如果要循环一个数组并打印出以逗号分隔的内容,它会在最后打印出一个额外的内容。 我做了一些搜索,但找不到适合这种情况的答案 代码: public String toString(){ String hold= ""; for(int i = 0; i < array.length; i ++){ if(array[i] == true){ hold + = i; if(i != arra
public String toString(){
String hold= "";
for(int i = 0; i < array.length; i ++){
if(array[i] == true){
hold + = i;
if(i != array.length-1)
hold+= ",";
}
}
return hold;
}
公共字符串toString(){
字符串hold=“”;
for(int i=0;i
循环结束后,只需检查循环是否以逗号结束
for(whatever){
whatever
}
if(hold.endsWith(","){
hold = hold.substring(0,hold.length()-1);
}
编辑:
也许最后一个
数组[i]
不是真的
,所以您的逻辑测试
if(i != array.length-1)
未签订合同
但无论如何,只要更换
if(hold.endsWith (","){
hold = hold.substring (0, hold.length()-1);
}
试试这个
public String toString(){
String hold= "";
for(int i = 0; i < array.length; i ++){
if(array[i] == true){
if (i != 0) {
hold += ",";
}
hold += i;
// if(i != array.length-1) {
// hold+= ",";
// }
}
}
return hold;
}
公共字符串toString(){
字符串hold=“”;
for(int i=0;i
使用Java 8非常简单:
String[] values={"foo", "bar", "baz"};
public String toString(){
return Arrays.stream(values).collect(Collectors.joining(", "));
}
在Java 8之前,我会选择这种冗长的方式:
public String toString(){
StringBuilder sb = new StringBuilder();
Iterator<String> iterator = Arrays.asList(values).iterator();
if(iterator.hasNext()){
sb.append(iterator.next());
while(iterator.hasNext()){
sb.append(", ").append(iterator.next());
}
}
return sb.toString();
}
公共字符串toString(){
StringBuilder sb=新的StringBuilder();
迭代器迭代器=数组.asList(值).Iterator();
if(iterator.hasNext()){
sb.append(iterator.next());
while(iterator.hasNext()){
sb.append(“,”).append(iterator.next());
}
}
使某人返回字符串();
}
希望这有帮助
(您可以抓住逻辑并与代码集成)
String op=”“;
对于(int i=0;i
在Java 8中,您不再需要这个:
如果它是字符串数组,那么下面的内容将为您提供您想要实现的相同内容
String joined = String.join(",", name);
另一种方式是Java8
List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7);
System.out.println(numbers.stream()
.map(number -> String.valueOf(number))
.collect(toStringJoiner(", ")));
List number=Arrays.asList(1,2,3,4,5,6,7);
System.out.println(numbers.stream()
.map(编号->字符串.valueOf(编号))
.收取(toStringJoiner(“,”);
谢谢。但是我正在寻找一种方法,一开始甚至不生成逗号。我添加了一种不同的方法来完成它。只需检查当前迭代是否是最后一次,如中所示:if(I==arr.length-1)System.out.print(element);else系统输出打印(元素+“,”);对于偶尔的循环,我使用一个布尔值,它在第一个循环上设置,并在每个其他循环上插入一个逗号。但我最近一直在写一个代码生成器,其中经常出现这种模式,所以我创建了一个类来表示它。内部是维护和布尔值,以确定其“print”方法是否被多次调用。只有这样,它才会输出所需的值(传递给构造函数)。
String joined = String.join(",", name);
List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7);
System.out.println(numbers.stream()
.map(number -> String.valueOf(number))
.collect(toStringJoiner(", ")));