我正在做一个项目,我在其中构建一个简单的符号表,该表由两个数组组成:ArrayOfKeys 和 ArrayOfValues。 键是单词,值是文本中每个单词的频率。 我需要使用此模型为我的 ST 类编写一个 toString 方法:
public String toString() {
// write your toString() method here
}
假设从文本中读取单词“aaa”和“bbb”并插入到原文中。 toString 方法将这样调用:
StdOut.println("Let's see ST1 with 4 pairs key-val: " + st1);
其中“st1”是 ST 类的一个实例。 输出应该是这样的:
让我们看看具有 4 对键值的 ST1:{'aaa': 1 , 'bbb': 1}
在我看来,整个符号表应该打印在toString()方法的return语句中,因为它需要返回一个String。我不知道该怎么做,更不用说上面显示的格式了。
我能尝试的最好的是:
return (arrayOfKeys + ":" + arrayOfValues);
PS:我使用的是 Java 版本 1.8.0_121。
最佳答案
一种相对简洁(恕我直言)的方法是创建数组所具有的索引流,并让 Collectors.joining
为您完成繁重的工作:
String result =
IntStream.range(0, arrayOfKeys.length)
.mapToObj(i -> "'" + arrayOfKeys[i] + "': " + arrayOfValues[i])
.collect(Collectors.joining(" , ", "{", "}"));
关于java - Java中toString方法打印符号表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42890037/