我正在尝试将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)
您可以分配newSortedMap.get(key).toString()给一个变量,比如说stringList。现在打电话writer.println(stringList.substring(1,stringList.length()-1));
了解当您将列表传递给writer.println方法时,它将调用toString()对象的方法并写入输出。该list.toString()方法返回一个字符串,其中所有值均由 分隔,并将和,添加到字符串的开头和结尾。[]