1

我知道将数据拆分为字符串非常容易,但我仍然想要连接字符串的指南,我的数据采用格式。在我的字符串中,数据采用上述格式

104
inNetStandardGuest
windowsGuest
uestToolsTooOld


121
slesGuest
guestToolsTooOld
20569355609

预期输出:

104,inNetStandardGuest,windowsGuest,uestToolsTooOld
121,slesGuest,guestToolsTooOld,20569355609
4

5 回答 5

5

它只是拆分和组合字符串。

StringBuilder out = new StringBuilder();
for (String set : data.split("\n\n\n")) {
    for (String line : set.split("\n")) {
        out.append(line).append(',');
    }
    out.setCharAt(out.length(), '\n');
}
System.out.println(out);
于 2012-08-09T09:40:30.993 回答
2

使用 Guava 的SplitterJoiner

final Iterable<String> lines = Splitter.on("\n\n\n").split(input);
for (final String line : lines) {
  final Iterable<String> fields = Splitter.on("\n").split(line);
  final String joined = Joiner.on(",").join(fields);
}
于 2012-08-09T09:41:14.513 回答
1

这个怎么样?

String s = "104\n" +
           "inNetStandardGuest\n" +
           "windowsGuest\n" +
           "uestToolsTooOld\n" +
           "\n" +
           "\n" +
           "121\n" +
           "slesGuest\n" +
           "guestToolsTooOld\n" +
           "20569355609\n";

System.out.println(s.replaceAll("(.)\\n","$1,")
                    .replaceAll(",,","\n")
                    .replaceAll(",\\n","\n"));

不过,可能不是最有效的方法。

于 2012-08-09T09:43:37.243 回答
0

缓冲阅读器: http: //docs.oracle.com/javase/1.4.2/docs/api/java/io/BufferedReader.html

readLine() 方法: http ://docs.oracle.com/javase/1.4.2/docs/api/java/io/BufferedReader.html#readLine ()

例如你读了 4 行

  string outputLine = line1 + "," + line2 + "," + line3 + "," + line4;

然后阅读 2 行并跳过它。

如果你不知道如何使用我的建议来实现它,你应该阅读一些基础教程。

于 2012-08-09T09:40:46.493 回答
0

试试这个 :

String str = "104\ninNetStandardGuest\nwindowsGuest\nuestToolsTooOld\n\n\n121\nslesGuest\nguestToolsTooOld\n20569355609";
str= str.replaceAll("\\s", ",").replaceAll(",,,", "\n");
System.out.println(str);

输出 :

104,inNetStandardGuest,windowsGuest,uestToolsTooOld
121,slesGuest,guestToolsTooOld,20569355609
于 2012-08-09T09:50:21.917 回答