我有问题。我有以下字符串src
根据ArrayList
中的指定定系数进行分配。每个部分拆分都必须在数组中进行进一步分配到单词。但是,我的问题是all
之后的!
在?
时不符合。如果列表中的任何两个不同的定分列在字符串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));
}
}
我的输出如下:首先
第三[大家好!今天是个好日子][你好,所有!
显然是"!"在"全部"之后,由于"服用"!您正在将划界字符串存储在"零件"中,但后来您正在执行" SRC"上的划界操作,其中包含原始字符串,包括"!"
update
我弄清楚了这很容易...只需创建一串正则绳索,例如:
String regex = "[!.?]";
String src = "Hello all! today is a great day?";
String mot[] = src.split(regex);
System.out.println(Arrays.toString(mot));
输出:[你好,今天是美好的一天]