简体   繁体   English

如何通过在Java中使用空格来拆分String

[英]How to split String by taking space's in java

I know its very easy to split data in strings, but still i want guide to concate string, my data is in the format. 我知道将数据拆分为字符串非常容易,但是我仍然希望引导字符串连接,我的数据采用格式。 In my string the data is in the above format 在我的字符串中,数据采用上述格式

104
inNetStandardGuest
windowsGuest
uestToolsTooOld


121
slesGuest
guestToolsTooOld
20569355609

Expected Output: 预期产量:

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

It's simply splitting and combining strings. 它只是拆分和组合字符串。

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

With Guava's Splitter and Joiner : 与番石榴的分离器和细木工

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

How about this? 这个怎么样?

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"));

Probably not the most efficient way, though. 不过,可能不是最有效的方法。

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

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

For example you read 4 lines 例如,您读了4行

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

Then read 2 lines and skip it. 然后阅读2行并跳过它。

If you don't know how to implement it using my advices, you should read some basics tutorial. 如果您不知道如何使用我的建议来实现它,则应该阅读一些基础教程。

Try this : 尝试这个 :

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

Output : 输出:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM