java - Java中toString方法打印符号表

标签 java arrays tostring

我正在做一个项目,我在其中构建一个简单的符号表,该表由两个数组组成: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/

相关文章:

java - 为什么不允许 System.out.println(super)?

javascript - 如何使 Javascript "toString"隐式方法文化感知

java - 浮点文字语法

java - Android 中通过 TCP 进行实时音频流传输

java - 从插入的 DataSet 获取主键以链接到其他插入

c++ - SORT 整数数组 TAG 结构数组(或两个)

javascript - 使用 fetch API 从数组获取数据时出现问题

java - 如何防止 java.util.logging.Logger 在标准输出上显示消息?

linq - LINQ for LIKE查询数组元素

javascript - 为什么 String(null) 有效?