java - java检查字符串中是否有辅音

标签 java

所以我正在编写一个名为“pig latin”的游戏的程序(您可以查看维基百科的规则,但它包括取第一个辅音并将它们移到单词的后面并添加 -ay)。我需要检查该单词的开头是否有辅音。如果它有一个或多个辅音,则需要获取从第一个辅音开始到元音之前的最后一个辅音结束的子字符串。

public void isConsonant(String word){
    char[] consonants = {'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm'
            , 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'z' };
    char[] StringArray = word.toCharArray();
    for(int dex = 0; dex < StringArray.length; dex++ ){
        char current = StringArray[dex];
    }
}

这是一个例子:

“glove”这个词应该变成 oveglay 。我的程序输出“lovegay”。

这是我的程序(减去导入GUI内容):

public class PigLatin extends JFrame implements ActionListener {
    JTextField word = new JTextField(25);
    JButton GO = new JButton("Go");
    JLabel output = new JLabel();
    String CharNum1;
    String CharNum2;

    //The frame setup should be here

    public void isConsonant(String verify) {
        char[] consonants = { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm',
                'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'z' };
        char[] StringArray = verify.toCharArray();
        for (int dex = 0; dex < StringArray.length; dex++) {
            char current = StringArray[dex];
        }
    }

    public void game() {
        // The actual word
        String word2 = word.getText();

        // The first character
        CharNum1 = word2.substring(0, 2);
        CharNum2 = word2.substring(1, word2.length());

        // Remove the first char
        // String RevampedWord = word2.replace(CharNum1, "");
        String finalWord = CharNum2 + "-" + CharNum1 + "ay";
        output.setText(finalWord);
    }

    public void actionPerformed(ActionEvent event) {
        game();
    }

    public static void main(String[] arguments) {
        PigLatin pig = new PigLatin();
    }
}

所以我的问题是是否可以查看一个字符串是否包含辅音并将第一个辅音的子串制作为元音之前的第一个辅音。

提前致谢。

最佳答案

你找错了树...使用正则表达式:

提取第一个元音之前的所有辅音:

String initialConsonants = str.replaceAll("([^aeiouAEIOU]*).*", "$1");

仅提取辅音:

String onlyConsonants = str.replaceAll("[aeiouAEIOU]", "");

或者如果您确实需要知道文本是否都是辅音:

boolean isAllConsonants = str.matches("[^aeiouAEIOU]+");

关于java - java检查字符串中是否有辅音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17440444/

相关文章:

javascript - Java JSObject.eval() 不起作用,是否需要导入?

java - 如何解析 CDATA 部分中带有 HTML 标签的 XML 文件?

java - 无法将sharedPreferance中保存的JSON格式字符串转换为多维数组

java - Map Java的递归迭代

java - Android MultiThread SpeedTest 存在性能问题

java - 如何对非英语字符串进行排序?

java - Java解释器和编译器规则冲突

java - Runtime.getRuntime.exec() 无法正常工作

java - 当用户展开一个节点时展开多个 JTree 节点

java - 如何使使用成熟的 m/w 类编写的遗留应用程序软件适应于在相同 m/w 类的子集上工作