如何从Multimap的String表示中删除第一个和最后一个字符?

Sha*_*ala 5 java syntax guava

我正在尝试将a的结果输出Multimap.get()到文件。但是我得到[]字符分别显示为第一个和最后一个字符。

我尝试使用此程序,但它不显示整数之间的任何分隔符。我怎么解决这个问题?

package main;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;

public class App {

public static void main(String[] args) {

    File file = new File("test.txt");
    ArrayList<String> list = new ArrayList<String>();
    Multimap<Integer, String> newSortedMap = ArrayListMultimap.create();

    try {
        Scanner s = new Scanner(file);
        while (s.hasNext()) {
            list.add(s.next());
        }
        s.close();
    } catch (FileNotFoundException e) {
        System.out.println("File cannot be found in root folder");
        ;
    }

    for (String word : list) {
        int key = findKey.convertKey(word);
        newSortedMap.put(key, word);
    }

    // Overwrites old output.txt
    try {
        PrintWriter writer = new PrintWriter("output.txt", "UTF-8");
        for (Integer key: newSortedMap.keySet()) {
            writer.println(newSortedMap.get(key));
        }
        writer.close(); 
    } catch (FileNotFoundException e) {
        System.out.println("FileNotFoundException e should not occur");
    } catch (UnsupportedEncodingException e) {
        System.out.println("UnsupportedEncodingException has occured");
    }
}
Run Code Online (Sandbox Code Playgroud)

Har*_*dar 4

您可以分配newSortedMap.get(key).toString()给一个变量,比如说stringList。现在打电话writer.println(stringList.substring(1,stringList.length()-1));

了解当您将列表传递给writer.println方法时,它将调用toString()对象的方法并写入输出。该list.toString()方法返回一个字符串,其中所有值均由 分隔,并将和,添加到字符串的开头和结尾。[]