我遇到了问题。我有下面的字符串 src
根据 ArrayList
中指定的分隔符进行分割。每个部分拆分都必须放入一个数组中,以便进一步拆分为单词。然而我的问题是 all
之后的 !
不满足,而 ?
满足。如果列表中的任何 2 个不同的分隔符出现在字符串 src
中,我就会遇到这个问题。您能告诉我我的代码有什么问题吗,或者告诉我一种更简单的方法来执行句子拆分。感谢您抽出时间。
public class temp
{
public static void main(String[] args)
{
boolean flag = false;
int j;
String word;
ArrayList <String> delimiter = new ArrayList <String>();
delimiter.add("!");
delimiter.add(".");
delimiter.add("?");
String src = "Hello all! today is a great day?";
String parts[] = new String[src.length()];
String mot[] = new String[src.length()];
String temp;
for(int i=0;i<src.length();i++)
{
j=0;
if(src.charAt(i) == delimiter.get(j).charAt(0))
{
System.out.println("first");
parts = src.split("!");
parts.toString();
}
j++;
if(src.charAt(i) == delimiter.get(j).charAt(0))
{
System.out.println("second");
parts = src.split("\\.");
parts.toString();
}
j++;
if(src.charAt(i) == delimiter.get(j).charAt(0))
{
System.out.println("third");
parts = src.split("\\?");
parts.toString();
}
}
System.out.println(Arrays.toString(parts));
for(int i=0;i<parts.length;i++)
{
word = parts[i];
mot = word.toLowerCase().split(" ");
}
System.out.println(Arrays.toString(mot));
}
}
我的输出如下: 首先
第三 [大家好!今天是个好日子] [大家好!今天是一个伟大的日子]
最佳答案
显然是“!”在“all”之后不会被分割,因为在使用“!”之后您将分隔字符串存储在“parts”中,但稍后您将对“src”执行分隔操作,其中包含原始字符串(包括“!”)
关于java - 如何使用 2 个参数多次分割一个句子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42779207/