Java中打印符号表的toString方法
我正在做一个项目,其中我构建了一个简单的符号表,由两个数组组成:ArrayOfKeys和ArrayOfValues。 键是单词,值是文本中每个单词的频率。 我需要使用此模型为我的ST类编写一个toString方法:Java中打印符号表的toString方法,java,arrays,tostring,Java,Arrays,Tostring,我正在做一个项目,其中我构建了一个简单的符号表,由两个数组组成:ArrayOfKeys和ArrayOfValues。 键是单词,值是文本中每个单词的频率。 我需要使用此模型为我的ST类编写一个toString方法: public String toString() { // write your toString() method here } 假设单词“aaa”和“bbb”从文本中读取并插入到ST。 toString方法的调用方式如下: StdOut.println("Let's
public String toString() {
// write your toString() method here
}
假设单词“aaa”和“bbb”从文本中读取并插入到ST。
toString方法的调用方式如下:
StdOut.println("Let's see ST1 with 4 pairs key-val: " + st1);
其中“st1”是ST类的实例。
输出应如下所示:
让我们看一下带有4对键值的ST1:{aaa':1,'bbb':1}
如我所见,整个符号表应该在toString()方法的return语句中打印,因为它需要返回一个字符串。我不知道怎么做,更不用说上面显示的格式了
我能做的最好的尝试是:
return (arrayOfKeys + ":" + arrayOfValues);
PS:我使用的是Java版本1.8.0_121。一种相对简洁的(IMHO)方法是创建数组拥有的索引流,并让收集器使用。加入为您完成繁重的工作:
String result =
IntStream.range(0, arrayOfKeys.length)
.mapToObj(i -> "'" + arrayOfKeys[i] + "': " + arrayOfValues[i])
.collect(Collectors.joining(" , ", "{", "}"));
您可以尝试使用StringBuilder生成字符串。代码应该如下所示:
public String toString() {
StringBuilder sb = new StringBuilder("Let's see ST1 with 4 pairs key-val: {");
for(int i = 0; i< arrayOfKeys.size();i++) {
sb.append('\'' + arrayOfKeys[i] + '\': ');
sb.append(String.valueOf(arrayOfValues[i]));
if(i!=arrayOfKeys.size() -1) {
sb.append(" , ");
}
}
sb.append("}");
return sb.toString();
}
公共字符串toString(){
StringBuilder sb=新的StringBuilder(“让我们看看ST1和4对键val:{”);
对于(int i=0;i
公共字符串toString(){
字符串结果=“{”;
for(int i=0;i
使用StringBuilder。使用循环。将每个键/值对追加到StringBuilder。
public String toString() {
String results = "{";
for (int i = 0; i < arrayOfKeys.length; i++){
results += "'"+arrayOfKeys[i]+"' : "+arrayOfValue[i]+",";
}
results+="}";
return results;
}