Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中打印符号表的toString方法_Java_Arrays_Tostring - Fatal编程技术网

Java中打印符号表的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

我正在做一个项目,其中我构建了一个简单的符号表,由两个数组组成:ArrayOfKeys和ArrayOfValues。 键是单词,值是文本中每个单词的频率。 我需要使用此模型为我的ST类编写一个toString方法:

 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;
}