我想构建一个方法,该方法仅返回以标点符号结尾的字符串。问题是,当我编译它时说它找不到“ 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/

10-13 07:40
查看更多