检查java中的字符串中是否有辅音
因此,我正在编写一个名为pig latin的游戏程序(你可以查看Wikipedia的规则,但它包括取第一个辅音并将其移到单词的后面,然后添加-ay)。我需要检查这个词的开头是否有辅音。如果它有一个或多个同音词,它需要得到从第一个辅音开始到元音前最后一个辅音结束的子串检查java中的字符串中是否有辅音,java,Java,因此,我正在编写一个名为pig latin的游戏程序(你可以查看Wikipedia的规则,但它包括取第一个辅音并将其移到单词的后面,然后添加-ay)。我需要检查这个词的开头是否有辅音。如果它有一个或多个同音词,它需要得到从第一个辅音开始到元音前最后一个辅音结束的子串 public void isConsonant(String word){ char[] consonants = {'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm'
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];
}
}
所以我的问题是,是否有可能看到一个字符串是否包含辅音,并将第一个辅音的子字符串设置为元音之前的第一个辅音
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];
}
}
提前谢谢 使用布尔函数检查char是否为元音,而不是写big 乙二醇
检查每个字符,然后您就可以轻松地将其编码出来。使用布尔函数检查字符是否为元音,而不是写得太大 乙二醇
检查每个字符,然后您就可以轻松地将其编码出来。在这里,我删除了您的
isconant
函数,并创建了一个新函数,以获取字符串中仅包含常量的第一部分
使用此更改修改游戏功能:
public String getFirstConsonants(String verify) {
List<Character> vowels = Arrays.asList('a', 'e', 'i', 'o', 'u'); // better finding vowels (faster)
String firstString = "";
for (int i = 0; i < verify.length(); i++) {
if (!vowels.contains(verify.charAt(i)))
firstString += verify.charAt(i); // we found a constant
else
break; // we found a vowel, we have already our string
}
return firstString;
}
public void game() {
// The actual word
String word2 = word.getText();
// Lets find the first consonants
String firstString = getFirstConsonants(word2);
String finalWord = word2.substring(firstString.length()) + "-" + firstString + "ay";
output.setText(finalWord);
}
公共字符串getFirstConsonants(字符串验证){
List元音=数组。asList('a','e','i','o','u');//更好地查找元音(更快)
字符串firstString=“”;
对于(int i=0;i
在这里,我删除了您的isconsant
函数,并创建了一个新函数,以获取字符串中仅包含常量的第一部分
使用此更改修改游戏功能:
public String getFirstConsonants(String verify) {
List<Character> vowels = Arrays.asList('a', 'e', 'i', 'o', 'u'); // better finding vowels (faster)
String firstString = "";
for (int i = 0; i < verify.length(); i++) {
if (!vowels.contains(verify.charAt(i)))
firstString += verify.charAt(i); // we found a constant
else
break; // we found a vowel, we have already our string
}
return firstString;
}
public void game() {
// The actual word
String word2 = word.getText();
// Lets find the first consonants
String firstString = getFirstConsonants(word2);
String finalWord = word2.substring(firstString.length()) + "-" + firstString + "ay";
output.setText(finalWord);
}
公共字符串getFirstConsonants(字符串验证){
List元音=数组。asList('a','e','i','o','u');//更好地查找元音(更快)
字符串firstString=“”;
对于(int i=0;i
你找错人了。。。使用正则表达式:
要提取第一个元音之前的所有辅音,请执行以下操作:
String initialConsonants = str.replaceAll("([^aeiouAEIOU]*).*", "$1");
要仅提取辅音,请执行以下操作:
String onlyConsonants = str.replaceAll("[aeiouAEIOU]", "");
boolean isAllConsonants = str.matches("[^aeiouAEIOU]+");
或者如果您真的需要知道文本是否都是辅音:
String onlyConsonants = str.replaceAll("[aeiouAEIOU]", "");
boolean isAllConsonants = str.matches("[^aeiouAEIOU]+");
你找错人了。。。使用正则表达式: 要提取第一个元音之前的所有辅音,请执行以下操作:
String initialConsonants = str.replaceAll("([^aeiouAEIOU]*).*", "$1");
要仅提取辅音,请执行以下操作:
String onlyConsonants = str.replaceAll("[aeiouAEIOU]", "");
boolean isAllConsonants = str.matches("[^aeiouAEIOU]+");
或者如果您真的需要知道文本是否都是辅音:
String onlyConsonants = str.replaceAll("[aeiouAEIOU]", "");
boolean isAllConsonants = str.matches("[^aeiouAEIOU]+");
有一种方法可能会让你想做什么,这有点有趣: 假设您正在将
word
转换为pig拉丁语,那么使用word.split(“[aeiouAEIOU]”,2)
怎么样?查看split
的文档,它将与正则表达式精确匹配一次,因此返回的字符串数组将围绕单词中的第一个元音进行拆分。然后,您可以根据第一个元音是第一个字符、最后一个字符、介于两者之间的某个位置,甚至是找不到的地方(请记住,并非所有单词都包含这五个元音中的一个),将这些片段重新排列成正确的顺序
(请注意,
split
将删除找到的第一个元音,因此您必须使用word
将该元音取回,但第一个片段的大小也将是该元音在word
中的索引)一种可能实现您想要的功能的方法,这有点有趣:
假设您正在将word
转换为pig拉丁语,那么使用word.split(“[aeiouAEIOU]”,2)
怎么样?查看split
的文档,它将与正则表达式精确匹配一次,因此返回的字符串数组将围绕单词中的第一个元音进行拆分。然后,您可以根据第一个元音是第一个字符、最后一个字符、介于两者之间的某个位置,甚至是找不到的地方(请记住,并非所有单词都包含这五个元音中的一个),将这些片段重新排列成正确的顺序
(请注意,
split
将删除找到的第一个元音,因此您必须使用word
将该元音取回,但第一个片段的大小也将是该元音在word
中的索引)以下是一些单行例程,用于检测某个字符是辅音还是元音:
private static boolean isVowel(char c) {
return "aeiouAEIOU".contains(String.valueOf(c));
}
private static boolean isConsonant(char c) {
return "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ".contains(String.valueOf(c));
}
以下是一些单行例程,用于检测某个字符是辅音还是元音:
private static boolean isVowel(char c) {
return "aeiouAEIOU".contains(String.valueOf(c));
}
private static boolean isConsonant(char c) {
return "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ".contains(String.valueOf(c));
}
大学作业?:)所有这些GUI内容似乎与问题无关。试着写一篇文章,如果人们不需要找出你的代码中与问题相关的部分,他们会更愿意阅读并帮助你。我真的不明白为什么人们会在代码中添加新的换行符。为什么不把它保持小而简单呢P大学作业?:)所有这些GUI内容似乎与问题无关。试着写一篇文章,如果人们不需要找出你的代码中与问题相关的部分,他们会更愿意阅读并帮助你。我真的不明白为什么人们会在代码中添加新的换行符。为什么不把它保持小而简单呢p这将和你的工作时间一样长