Java 如何使用2个参数多次拆分一个句子?
我有个问题。下面的字符串Java 如何使用2个参数多次拆分一个句子?,java,Java,我有个问题。下面的字符串src将根据ArrayList中指定的分隔符进行拆分。为了进一步拆分到单词,每个部分拆分都必须放入一个数组中。然而,我的问题是,不是cate,而?是cate。如果字符串src中存在列表中的任何两个不同分隔符,我就会遇到这个问题。你能告诉我我的代码有什么问题吗?或者告诉我一种更简单的分句方法。谢谢你抽出时间 public class temp { public static void main(String[] args) { boolea
src
将根据ArrayList
中指定的分隔符进行拆分。为了进一步拆分到单词,每个部分拆分都必须放入一个数组中。然而,我的问题是,所有之后的code>不是cate,而?
是cate。如果字符串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));
}
}
公共类临时
{
公共静态void main(字符串[]args)
{
布尔标志=假;
int j;
字符串字;
ArrayList分隔符=新的ArrayList();
分隔符。添加(“!”);
分隔符。添加(“.”);
分隔符。添加(“?”);
String src=“大家好!今天是个好日子?”;
字符串部分[]=新字符串[src.length()];
字符串mot[]=新字符串[src.length()];
字符串温度;
对于(int i=0;i显然,“all”之后的“!”不会被分割,因为在取出“!”之后,您将分隔字符串存储在“parts”中,但稍后您将在“src”上执行分隔操作,其中包含原始字符串,包括“!”更新
我发现这很容易…只需创建一个正则表达式字符串,如:
String regex = "[!.?]";
String src = "Hello all! today is a great day?";
String mot[] = src.split(regex);
System.out.println(Arrays.toString(mot));
输出:[大家好,今天是个好日子]parts.toString()的目的是什么;
?您对该方法调用的结果没有做任何处理。请检查您的代码流,因为您的代码没有按照您提到的要求执行,因此似乎需要修改您的程序。有关定界操作的参考,请检查:-是的,我看到了,它没有按我想要的方式工作。谢谢您的时间和支持努力,谢谢you@zfk16如果答案回答了你的问题,请在上面标出