将字符串分成 java 中的句子(在指定组的符号出现后)
Breaking string into sentences in java (after symbol of specified group occurs)
所以我写了下面的代码:
String text = "This is a string. I want to break it into sentences";
String[] sentences = text.split("\.");
for (int i = 0; i < sentences.length; i++)
System.out.println(sentences[i]);
这段代码的输出是:
This is a string
I want to break it into sentences
如何更改此代码以便
- 每个新句子不仅会在“.”之后创建,还会在“!”之后创建。或“?”。
- 句首不会有空格。
例如,如果我们有以下字符串
String text = "This is a string! Is this a string? I want to break it into sentences";
那么输出应该是:
This is a string
Is this a string
I want to break it into sentences
您可以使用字符 class 围绕点 (.
)、?
或 !
字符之一进行拆分。要删除句子开头(也可能是结尾)的 space,您可以简单地 trim 结果字符串:
String[] sentences = text.split("[.!?]");
for (int i = 0; i < sentences.length; i++) {
System.out.println(sentences[i].trim());
}
将定界符放在字符 class 内,并在字符 class 旁边添加 \s*
,这样它也将占用以下零个或多个空格。
String[] sentences = text.split("[?!.]\s*");
示例:
String text = "This is a string! Is this a string? I want to break it into sentences";
String[] parts = text.split("[?!.]\s*");
for(String i: parts)
{
System.out.println(i);
}
输出:
This is a string
Is this a string
I want to break it into sentences
所以我写了下面的代码:
String text = "This is a string. I want to break it into sentences";
String[] sentences = text.split("\.");
for (int i = 0; i < sentences.length; i++)
System.out.println(sentences[i]);
这段代码的输出是:
This is a string
I want to break it into sentences
如何更改此代码以便
- 每个新句子不仅会在“.”之后创建,还会在“!”之后创建。或“?”。
- 句首不会有空格。
例如,如果我们有以下字符串
String text = "This is a string! Is this a string? I want to break it into sentences";
那么输出应该是:
This is a string
Is this a string
I want to break it into sentences
您可以使用字符 class 围绕点 (.
)、?
或 !
字符之一进行拆分。要删除句子开头(也可能是结尾)的 space,您可以简单地 trim 结果字符串:
String[] sentences = text.split("[.!?]");
for (int i = 0; i < sentences.length; i++) {
System.out.println(sentences[i].trim());
}
将定界符放在字符 class 内,并在字符 class 旁边添加 \s*
,这样它也将占用以下零个或多个空格。
String[] sentences = text.split("[?!.]\s*");
示例:
String text = "This is a string! Is this a string? I want to break it into sentences";
String[] parts = text.split("[?!.]\s*");
for(String i: parts)
{
System.out.println(i);
}
输出:
This is a string
Is this a string
I want to break it into sentences