删除一个空行

时间:2016-09-14 19:49:24

标签: java regex

我有一个文件,我将其转换为List<List<String>>

执行此操作后,我会进行一些处理,然后我需要将文件(现在是List List)转换为字符串。

private static String convertListOfListToString(List<List<String>> listOfIncomingMsgListsTemp){
    List<String> tempList = new ArrayList<String>();
    for(List<String> listOfString : listOfIncomingMsgListsTemp){
        tempList.add(convertListToString(listOfString));
    }
    String modifiedString = convertListToString(tempList);
    modifiedString.replace("\n\n", "\n");
    System.out.println("modifiedString :\n" + modifiedString);
    return modifiedString;
}

private static String convertListToString(List<String> list){
    StringBuilder sb = new StringBuilder();
    for (String s : list)
    {
        sb.append(s);
        sb.append("\n");
    }
    return(sb.toString());
}

输出: 当我追加List时,附加2 \ n \ n。我需要删除那些只有1 \ n。 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

Java 8为您提供了一种非常优雅的方式来实现这一点。

String[] text1 = { "hello", "java", "this", "is", "cool" };
String[] text2 = { "hello", "Mundo", "this", "is", "sparta" };
List<String> line = new ArrayList<>();
line.addAll(Arrays.asList(text1));
line.addAll(Arrays.asList(text2));

List<List<String>> doc = new ArrayList<>();
doc.add(line);
doc.add(line);
doc.add(line);
StringBuilder sb = new StringBuilder();
doc.stream().forEach(a -> a.stream().forEach(x -> sb.append(x)));

System.out.println(sb.toString());