我遇到了问题。我根据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);`
我的输出如下: 第一
第三 [大家好!今天是个好日子] [你好,所有!今天,是,一个,伟大的,一天]
答案 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));
输出:[大家好,今天是美好的一天]