我正在使用 toString()
返回 Set<String>
元素的方法在 Java 中,但每个元素都在单独的一行中。
代码示例:
import java.util.Set;
public class Animals{
Set<String> animals;
String newanimal;
public Anmimals (Set<String> animals){
this.animals = animals;
}
public setAnimals(String newanimal){
this.newanimal = newanimal;
animals.add(newanimal);
}
public String toString(){
/* this is where my problem is i want to return the set (below),
however i also need each animal to be on a new line */
return animal
}
}
我能找到的唯一有点用的东西,最后都建议不要使用 toString()
而是将实际类与 System.out.println()
一起使用然而,要打印出信息,toString()
是这个特定问题所必需的。
是否可以向该方法添加一个 for 循环并在我使用 \n
返回单独行的每个元素时遍历每个方法? ?欢迎所有建议,因为这个建议,即使可能,看起来真的很乱。
最佳答案
我会流式传输集合,将每个元素转换为字符串并使用行分隔符连接它们:
@Override
public String toString() {
return animals.stream()
.map(Object::toString)
.collect(Collectors.joining(System.lineSeparator()));
}
编辑:
编辑问题后,很明显问题是关于加入 Set<String>
的。 ,而不是任何旧的Set
.在这种情况下,解决方案可以大大简化:
@Override
public String toString() {
return String.join(System.lineSeparator(), animals);
}
关于java - 在单独的行上使用 toString() 方法返回 Java 中集合的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45985723/