如何在Java中分割多行字符串

时间:2019-03-01 20:49:03

标签: java string split

我有以下数据文本:

[data]A[/data]
aaa
4 5 8 
[data]B[/data]
bbb
3 1 9 
[data]C[/data]
ccc
6 5 2
... 

我想将它们分为以下3个单元:

第一单位:

[data]A[/data]
aaa
4 5 8 

第二单元:

[data]B[/data]
bbb
3 1 9 

第三单元:

[data]C[/data]
ccc
6 5 2

所以我的代码如下:

String Units[]=dataText.split("[data]");

但是,这样做做得不好,分割它的正确方法是什么?

如果我使用正则表达式,应该如何编写表达式?

2 个答案:

答案 0 :(得分:2)

使用正则表达式class Obj { [Symbol.for('nodejs.util.inspect.custom')]() { return "totally not an object"; } } const obj = new Obj(); const obj2 = { ...obj }; console.log(obj); // "totally not an object" console.log(obj2); // {}

Reflect.setPrototypeOf(obj2, Reflect.getPrototypeOf(obj))

有关演示,请参见regex101.com

说明:

${}

答案 1 :(得分:1)

您可以使用BufferedReader:

BufferedReader br = new BufferedReader(new StringReader(dataString));

像这样迭代字符串:

int lineCounter = 0;
int arrayCounter = 0;
String line = null;
while( (line = br.readLine()) != null )
{
    units[arrayCounter] += line;
    if (lineCounter >= 2) {
        arrayCounter++;
        lineCounter = 0;
    }
}