如何在java中附加带有前缀和后缀的句子?

如何在java中附加带有前缀和后缀的句子?,java,string,Java,String,我正在尝试读取包含以下内容的输入文件: input.txt Hello world. Welcome, to the java. 我必须在句子后面加上前缀(BEGIN)和后缀(END),输出如下: 预期输出: BEGIN_Hello world_END.BEGIN_ Welcome, to the java_END. BEGIN_SENTENCE__Hello world__END_SENTENCE.BEGIN_SENTENCE__Welcome to the java. 下面是我的输入

我正在尝试读取包含以下内容的输入文件:

input.txt

Hello world. Welcome,
to the java.
我必须在句子后面加上前缀(BEGIN)和后缀(END),输出如下:

预期输出:

BEGIN_Hello world_END.BEGIN_ Welcome,
to the java_END.
BEGIN_SENTENCE__Hello world__END_SENTENCE.BEGIN_SENTENCE__Welcome
to the java.

下面是我的输入文件读取功能。我正在读取整个文件并将其存储在数组列表中: InputDetails.java

private List<String> readInput = new ArrayList<>();
public void readFile() throws IOException {
   while((inputLine = input.readLine()) != null ) {
      readInput.add(inputLine);
   }
}

//Getter to return input file content
public List<String> getReadInput() {
   return readInput;
}
注意:每个句子由一个“.”(句号)字符分隔。输出句子的前缀应为BEGIN_uu,后缀应为END。句号字符不被视为句子的一部分。并且,输入文件由一个或多个空格分隔。当句子有句点(.)时,它是完整的,即使它意味着句子在新行完成(正如我上面指定的输入)。总之,特殊字符位置应保留在输出中。句点(.)或逗号(,)和单词之间也可以有空格例如:java。或者欢迎,


有人能帮我修一下吗?谢谢

首先,您需要将字符串列表输入加入到单个字符串中。然后,您可以使用
String.split()
方法将输入分解为由
字符分隔的部分。然后,您可以选择在该数组上运行循环,或者使用stream方法(如下所示)迭代语句。在每个部分上,只需将所需的
开始
结束
块附加到句子中即可。您可以使用
+
运算符使用手动字符串连接,也可以使用带有
string.format()
的字符串模板(如下所示)。最后,重新引入
分隔符,该分隔符用于通过将各部分连接回单个字符串来中断输入

String fullString = String.join("", getReadInput());
Arrays.asList(fullString).split("\\.")).stream()
  .map(s -> String.format("BEGIN_%s_END", s))
  .collect(Collectors.joining("."));

处拆分
,然后在为每个元素添加前缀和后缀后,在其上再次加入
join
。所以
String[]句=text.split(“\\”)
和数组上的常规for循环,其中包含一些
句子[i]=前缀+句子[i]+后缀和最后
String text=String.join(“.”,句子),完成。@Zabuzard,它不工作了。它显示为:BEGIN\u Hello world\uuuu END.BEGIN\uo欢迎,\uuuu END BEGIN\u到java\uu END我觉得你使用了一个不同的代码,而不是我建议的,它也在逗号上拆分,而不仅仅是点。很难说没有看到你的代码。它与上面的代码相同。没什么不同。不,我是说你试图使用我的代码。很明显,你一定用错了,因为它对我有用。你能补充一些解释吗?
String fullString = String.join("", getReadInput());
Arrays.asList(fullString).split("\\.")).stream()
  .map(s -> String.format("BEGIN_%s_END", s))
  .collect(Collectors.joining("."));