我想构建一个方法,该方法仅返回以标点符号结尾的字符串。问题是,当我编译它时说它找不到“ 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));
}
}
}
}
最佳答案
不使用正则表达式或模式的另一种方法:
考虑String marks = "...";
,其中省略号代表您认为是标点符号的所有字符。
然后注意,String的最后一个字符是c = s.charAt(s.length() - 1); //Minus one or OutOfBoundsException
如果字符串的最后一个字符是标点符号,则marks.contains(c)
将为true。
关于java - 如何仅返回以标点符号结尾的字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54658442/