android:使用标点符号分割字符串并使用数组中的句子维护标点符号

时间:2018-07-06 10:45:18

标签: android split

我有一句话, 你好,你在做什么?你好吗? 我想用。,?等字符来分隔句子。 我已经使用拆分功能实现了它 输出为:

<form #myForm = "ngForm" (submit)="callMyAPI(); myForm.resetForm()">

但是我希望数组为

arr[0]=hello
arr[1]=What you are doing
arr[2]=How are you

我已经完成了这段代码

arr[0]=hello
arr[1]=,
arr[2]=What you are doing
arr[3]=?
arr[4]=How are you
arr[5]=?

请帮助。

1 个答案:

答案 0 :(得分:3)

在保留文本的同时还要拆分文本的一般策略是使用环顾四周。环顾四周方法声明逻辑,但实际上不消费任何文本。它们基本上是零宽度。我使用以下模式拆分:

(?=[\\.,!;?:\"])|(?<=[\\.,!;?:\"])

这表示如果我们向前看并看到标点符号,则进行拆分。

String sentence = "hello, What you are doing?How are you?";
String[] parts = sentence.split("(?=[\\.,!;?:\"])|(?<=[\\.,!;?:\"])");
for (String part : parts) {
   System.out.println(part);
}

hello
,
 What you are doing
?
How are you
?

Demo

您可能还希望在每一项上运行String#trim以获得所需的准确输出。