如何用2个参数多次拆分一个句子?

时间:2017-03-14 06:34:59

标签: java

我遇到了问题。我根据src中指定的分隔符拆分下面的字符串ArrayList。每个部分拆分都必须放在一个数组中,以便进一步拆分为单词。不过我的问题是!之后的all不适合,?src。如果列表中的任何2个不同的分隔符出现在字符串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)); } } 中,我会遇到该问题。你能告诉我我的代码有什么问题,或者告诉我一个更简单的方法来执行句子拆分。谢谢你的时间。

Console.WriteLine("Waiting for a connection.....");     
Socket s=myList.AcceptSocket();
Console.WriteLine("Connection accepted from " + s.RemoteEndPoint);`

我的输出如下: 第一

第三 [大家好!今天是个好日子] [你好,所有!今天,是,一个,伟大的,一天]

2 个答案:

答案 0 :(得分:1)

显然是“!”在“所有”之后不会因为“!”之后被拆分如果您将分隔的字符串存储在“parts”中,但稍后您正在对“src”执行分隔操作,其中包含包含“!”的原始字符串

答案 1 :(得分:0)

<强>更新

我认为这很容易......只需创建一个正则表达式字符串,例如:

    String regex = "[!.?]";
    String src = "Hello all! today is a great day?";
    String mot[] = src.split(regex);
    System.out.println(Arrays.toString(mot));

输出:[大家好,今天是美好的一天]