我想用“。”分割句子。和“?”你可以使用实际输出列,但是当我使用正则表达式或 .split(“//。”)但是我收到错误因为它在先生<之后也分裂了/ strong>但这不是结束时期。如何仅包括结束时段意味着实际句子停止
public class SentenceSplitting {
public static void main(String[] args){
Scanner ss= new Scanner(System.in);
System.out.println("Enter the string");
String sentence= ss.nextLine();
String[] hold= sentence.split("(?<=[.!?]) (?=[^.!?])");
for(int i=0;i<hold.length;i++){
System.out.println(hold[i]);
}
}
}
先生。
史密斯以150万美元的价格买下了cheapsite.com
他为此付出了很多
他介意吗?
Adam Jones Jr.
认为他没有。
无论如何,这不是真的...
嗯,概率为.9则不是。
结果应该是:
先生。史密斯以150万美元的价格买下了cheapsite.com,即他为此付出了很多
他介意吗?
小亚当琼斯认为他没有
无论如何,这不是真的...
嗯,概率为.9则不是。
先生。史密斯以150万美元的价格买下了cheapsite.com,即他为此付出了很多。他介意吗?小亚当琼斯认为他没有。无论如何,这不是真的......好吧,概率为.9则不然。结果应该是:
答案 0 :(得分:0)
public class SentenceSplitting1 {
public static void main(String[] args){
BreakIterator iterator = BreakIterator.getSentenceInstance(Locale.US);
String source = "Mr.Smith bought cheapsite.com for 1.5 million dollars, i.e. he paid a lot for it. Did he mind? Adam Jones Jr. thinks he didn't. In any case, this isn't true... Well, with a probability of .9 it isn't. The result should be:";
iterator.setText(source);
int start = iterator.first();
for (int end = iterator.next();
end != BreakIterator.DONE;
start = end, end = iterator.next()) {
System.out.println(source.substring(start,end));
}
}
}