我试着用两个空行来拆分段落。我尝试使用String.split()、StringTokenizer和StringUtils类,但都不起作用。
下面是我的代码:
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我想拆分上面的代码,如下所示:
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发布于 2016-04-24 03:49:59
一种解决方案是逐行读取文件,并将每一行存储到一个变量(或数组,或您需要的内容)中。在阅读时,您可以通过以下方式检查该行是否为空行:
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为真,那么您可以设置一个标志,如果下一行再次为空,那么您就找到了您的段落。
发布于 2016-04-24 03:58:44
使用正则表达式的String#split()应该可以工作。
例如:
String[] paragraphs = input.split("\\n\\n\\n");
注意:这只适用于Unix换行符。
发布于 2016-04-24 06:27:52
这可以通过简单的正则表达式来完成:
尝试:
String[] paragraphs = text.split("(?im)(\r?\n){3,}");其中变量text包含您的数据。基于样本输入数据,上面的语句将其分为3个部分。此解决方案适用于在Windows或Linux上创建的文件,因此与平台无关。
https://stackoverflow.com/questions/36815542
复制相似问题