首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用空行拆分段落?

如何使用空行拆分段落?
EN

Stack Overflow用户
提问于 2016-04-24 03:41:13
回答 4查看 96关注 0票数 0

我试着用两个空行来拆分段落。我尝试使用String.split()StringTokenizerStringUtils类,但都不起作用。

下面是我的代码:

代码语言:javascript
复制
   DeviceNames (interfacename) # show commands
   Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
   O - OSPF, IA - OSPF inter area
   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
   E1 - OSPF external type 1, E2 - OSPF external type 2
   i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter    area
   * - candidate default

  S*      0.0.0.0/0 [1/0] via 172.16.0.1, internal
  S       10.100.8.0/21 [10/0] is directly connected, vlink10
  C       0.0.2.0/24 is directly connected, internal
  C       0.0.2.0/24 is directly connected, wan1


  DeviceNames (interfacename) # show commands
  Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
   O - OSPF, IA - OSPF inter area
   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
   E1 - OSPF external type 1, E2 - OSPF external type 2
   i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
   * - candidate default

  S*      0.0.0.0/0 [10/0] is directly connected, vlink21
              [10/0] is directly connected, vlink30
  C       0.0.2.0/24 is directly connected, vlink30
  C       0.0.2.0/32 is directly connected, vlink30
  C       0.0.2.0/24 is directly connected, vlink21
  C       0.0.2.0/32 is directly connected, vlink21


  DeviceNames (interfacename) # show commands
  Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
   O - OSPF, IA - OSPF inter area
   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
   E1 - OSPF external type 1, E2 - OSPF external type 2
   i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
   * - candidate default

   S*      0.0.0.0/0 [10/0] is directly connected, vlink11
              [10/0] is directly connected, vlink31
   C       0.0.1.0/24 is directly connected, vlink31
   C       0.0.1.0.1.1/32 is directly connected, vlink31

我想拆分上面的代码,如下所示:

代码语言:javascript
复制
   DeviceNames (interfacename) # show commands
   Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
   O - OSPF, IA - OSPF inter area
   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
   E1 - OSPF external type 1, E2 - OSPF external type 2
   i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter    area
   * - candidate default

  S*      0.0.0.0/0 [1/0] via 172.16.0.1, internal
  S       10.100.8.0/21 [10/0] is directly connected, vlink10
  C       0.0.2.0/24 is directly connected, internal
  C       0.0.2.0/24 is directly connected, wan1

下一个:

代码语言:javascript
复制
   DeviceNames (interfacename) # show commands
  Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
   O - OSPF, IA - OSPF inter area
   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
   E1 - OSPF external type 1, E2 - OSPF external type 2
   i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
   * - candidate default

  S*      0.0.0.0/0 [10/0] is directly connected, vlink21
              [10/0] is directly connected, vlink30
  C       0.0.2.0/24 is directly connected, vlink30
  C       0.0.2.0/32 is directly connected, vlink30
  C       0.0.2.0/24 is directly connected, vlink21
  C       0.0.2.0/32 is directly connected, vlink21

下一个:

代码语言:javascript
复制
   DeviceNames (interfacename) # show commands
   Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
   O - OSPF, IA - OSPF inter area
   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
   E1 - OSPF external type 1, E2 - OSPF external type 2
   i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
   * - candidate default

   S*      0.0.0.0/0 [10/0] is directly connected, vlink11
              [10/0] is directly connected, vlink31
   C       0.0.1.0/24 is directly connected, vlink31
   C       0.0.1.0.1.1/32 is directly connected, vlink31
EN

回答 4

Stack Overflow用户

发布于 2016-04-24 03:49:59

一种解决方案是逐行读取文件,并将每一行存储到一个变量(或数组,或您需要的内容)中。在阅读时,您可以通过以下方式检查该行是否为空行:

代码语言:javascript
复制
String newline = System.getProperty("line.separator"); // this is for getting proper new line;

boolean isNewline = myLine.startsWith(newline); //if your line start with newLine symbol

如果isNewLine为真,那么您可以设置一个标志,如果下一行再次为空,那么您就找到了您的段落。

票数 0
EN

Stack Overflow用户

发布于 2016-04-24 03:58:44

使用正则表达式的String#split()应该可以工作。

例如:

String[] paragraphs = input.split("\\n\\n\\n");

注意:这只适用于Unix换行符。

票数 0
EN

Stack Overflow用户

发布于 2016-04-24 06:27:52

这可以通过简单的正则表达式来完成:

尝试:

代码语言:javascript
复制
 String[] paragraphs = text.split("(?im)(\r?\n){3,}");

其中变量text包含您的数据。基于样本输入数据,上面的语句将其分为3个部分。此解决方案适用于在Windows或Linux上创建的文件,因此与平台无关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36815542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档