我正在阅读一段文本,想要找到第一句话的结尾,也就是字符串中第一个'.'、'?'或'!'的位置。以下是我的Java代码:
我相信这个代码是有效的,但总共有10个if语句,看起来不太整洁。我可能想要添加更多的句子分隔符,但我认为这种方法不够灵活。有没有更好的方法来实现同样的效果?有没有更短的方法来达到同样的结果?...还是我应该尝试一些其他编程语言来解决这种问题?哪一个呢?
int next = -1;
int nextQ = text.indexOf("? ");
int nextE = text.indexOf("! ");
int nextDot = text.indexOf(". ");
if (nextDot > 0) {
next = nextDot;
if (nextQ > 0){
if (nextQ < next) {next = nextQ;}
if (nextE > 0) {
if (nextE < next) {next = nextE;}
}
} else if (nextE > 0){
if (nextE < next) {next = nextE;}
}
} else if (nextQ > 0){
next = nextQ;
if (nextE > 0 && nextE < next){next = nextE;}
} else if (nextE > 0) { next = nextE;}
我相信这个代码是有效的,但总共有10个if语句,看起来不太整洁。我可能想要添加更多的句子分隔符,但我认为这种方法不够灵活。有没有更好的方法来实现同样的效果?有没有更短的方法来达到同样的结果?...还是我应该尝试一些其他编程语言来解决这种问题?哪一个呢?
return 1
是什么意思?这是我对标题的理解。 - maaartinus