java如何只返回以标点符号结尾的字符串?
我想建立一个方法,只返回以标点符号结尾的字符串。问题是,当我编译它时,它说它找不到“I”,那么我该怎么做呢
public static String ktheFjalite(String[] s){
int nrFjaleve = 0;
int nrZanoreve = 0;
for (int j = 0; j <s.length; j++){
if (s[j].charAt(j) == ' '){
nrFjaleve++;
}
}
for (int k = 0; k < s.length; k++){
if (s[k].contains("a")||s[k].contains("e")||s[k].contains("i")||s[k].contains("o")||s[k].contains("u")||s[k].contains("y")){
nrZanoreve++;
}
}
if(s[i].endsWith(".")||s[i].endsWith("!")||s[i].endsWith("?")||s[i].endsWith("...")){
if(nrFjaleve<=6){
if(nrZanoreve<=8) {
return (Arrays.toString(s));
}
}
}
}
# 1 楼答案
另一种不使用正则表达式或模式的方法:
考虑^ {CD1>},其中省略号表示您认为是标点符号的所有字符。
然后请注意,字符串s的最后一个字符是
c = s.charAt(s.length() - 1); //Minus one or OutOfBoundsException
如果字符串的最后一个字符是标点符号,那么
marks.contains(c)
将为真# 2 楼答案
我会使用正则表达式查找所有以标点符号结尾的单词,并将其返回到列表中。有关正则表达式的更多信息,请单击here
这可能不是一个完美的解决方案,但它应该给你一些方向
编辑
如果你只想在有x个单词的情况下返回单词,你可以通过以下方法实现:
希望这有帮助