有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java向StringBuffer添加单词

在我的问题中,我必须检查一个单词是否在单词的开头有元音,然后在单词的结尾有元音,如果它符合条件,我必须将它添加到StringBuffer中,我尝试过,但它不正确,我出现了一些错误,我不知道为什么。需要帮忙吗,谢谢

class MasinaDeTeme {
    private static StringBuffer sb = new StringBuffer();

    public static boolean isVowel(String c) {
        return "AEIOUaeiou".indexOf(String.valueOf(c)) != -1;
    }

    public static StringBuffer filtrareCuvinte(String[] cuvinte) {
        for (int i = 1; i <= cuvinte.length;++i){
            if (isVowel(cuvinte[i]) && isVowel(cuvinte[cuvinte.length])){
                sb.append(cuvinte);
            }
        }
        return sb;
    }
}
class Main
{
    public static void main (String[] args) throws java.lang.Exception
    {
        System.out.println(MasinaDeTeme.filtrareCuvinte(new String[]{"ana","are","mere"}).toString()); // anaare;
    }
}

共 (2) 个答案

  1. # 1 楼答案

    public static void main(String... args) {
        StringBuilder buf = filtrareCuvinte(new String[] { "ana", "are", "mere" });
        System.out.println(buf);
    }
    
    public static StringBuilder filtrareCuvinte(String[] words) {
        StringBuilder buf = new StringBuilder();
    
        for (String word : words)
            if (isVowel(word.charAt(0)) && isVowel(word.charAt(word.length() - 1)))
                buf.append(word);
    
        return buf;
    }
    
    private static boolean isVowel(char ch) {
        ch = Character.toLowerCase(ch);
        return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
    }
    
  2. # 2 楼答案

    这似乎是您正在寻找的解决方案。如注释中所述,您不需要将isVowel的布尔结果与另一个布尔值进行比较。此外,您应该检查字符串[]中每个字符串的第一个和最后一个字符,以查看它们是否为元音

    函数filtrareCuvinte可以分为两部分

    1. 迭代字符串[]的每个元素。示例:for (String str : cuvinte)
    2. 检查当前字符串的第一个和最后一个字符是否都是元音。示例:isVowel(str.charAt(0)) && isVowel(str.charAt(str.length() - 1))
    
    class MasinaDeTeme {
        private static StringBuffer sb = new StringBuffer();
    
        public static boolean isVowel(char c) {
            return "AEIOUaeiou".indexOf(String.valueOf(c)) != -1;
        }
    
        public static StringBuffer filtrareCuvinte(String[] cuvinte) {
    
            for (String str : cuvinte) {
                if (isVowel(str.charAt(0)) && isVowel(str.charAt(str.length() - 1))){
                    sb.append(str);
                }
            }
    
            return sb;
        }
    }
    class Main
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            System.out.println(MasinaDeTeme.filtrareCuvinte(new String[]{"ana","are","mere"}).toString()); // anaare;
        }
    }