在java中计算字符串中的元音
我想数一数字符串中每个单词的元音,并打印每个单词的元音数。我只知道如何数一串元音,我试过了。但我要每个单词的元音数。我怎么能把它打印出来在java中计算字符串中的元音,java,Java,我想数一数字符串中每个单词的元音,并打印每个单词的元音数。我只知道如何数一串元音,我试过了。但我要每个单词的元音数。我怎么能把它打印出来 String s="hai hello"; int count=0; for(int i=0;i<s.length();i++) { if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u'
String s="hai hello";
int count=0;
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u')
count++;
}
System.out.println(count);
String s=“海你好”;
整数计数=0;
对于(int i=0;i,可以在循环中使用条件:
if (s.charAt(i) == ' ' ) {
system.out.println(count)
count = 0;
}
每次看到Black时,它都会打印并设置计数为零。您可以在循环中使用条件:
if (s.charAt(i) == ' ' ) {
system.out.println(count)
count = 0;
}
每次您看到Black时,它都会打印并设置计数为零。我试图解决您的问题
String string = "hai hello";
String[] wordAr = string.split(" ");
int count = 0;
for (String s : wordAr) {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'a' || s.charAt(i) == 'e' || s.charAt(i) == 'i' || s.charAt(i) == 'o' || s.charAt(i) == 'u') {
count++;
}
}
System.out.print(count + "\t");
count = 0;
}
String=“海你好”;
String[]wordAr=String.split(“”);
整数计数=0;
for(字符串s:wordAr){
对于(int i=0;i
我试图解决你的问题
String string = "hai hello";
String[] wordAr = string.split(" ");
int count = 0;
for (String s : wordAr) {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'a' || s.charAt(i) == 'e' || s.charAt(i) == 'i' || s.charAt(i) == 'o' || s.charAt(i) == 'u') {
count++;
}
}
System.out.print(count + "\t");
count = 0;
}
String=“海你好”;
String[]wordAr=String.split(“”);
整数计数=0;
for(字符串s:wordAr){
对于(int i=0;i
您可以使用
String result = Arrays.asList(string.split(" ")).stream().map(s -> countVowel(s))
.collect(Collectors.joining(" "));
其中countVowel返回字符串中元音的nr(请参见“pantha istiaque”答案),以获得整个结果您可以使用
String result = Arrays.asList(string.split(" ")).stream().map(s -> countVowel(s))
.collect(Collectors.joining(" "));
public static Map<String, Integer> countVowelsByWords(String str) {
Map<String, Integer> map = new HashMap<>();
Arrays.stream(str.toLowerCase().split("[^a-z]+"))
.distinct()
.forEach(word -> {
int count = 0;
for (int i = 0; i < word.length(); i++) {
char ch = word.charAt(i);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
count++;
}
map.put(word, count);
});
return map;
}
其中countVowel返回字符串中元音的nr(请参见“pantha istiaque”答案)以获得整个结果公共静态映射CountVowelBywords(string str){
public static Map<String, Integer> countVowelsByWords(String str) {
Map<String, Integer> map = new HashMap<>();
Arrays.stream(str.toLowerCase().split("[^a-z]+"))
.distinct()
.forEach(word -> {
int count = 0;
for (int i = 0; i < word.length(); i++) {
char ch = word.charAt(i);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
count++;
}
map.put(word, count);
});
return map;
}
Map Map=newhashmap();
Arrays.stream(str.toLowerCase().split(“[^a-z]+”))
.distinct()
.forEach(word->{
整数计数=0;
for(int i=0;i
公共静态映射countVouelsBywords(字符串str){
Map Map=newhashmap();
Arrays.stream(str.toLowerCase().split(“[^a-z]+”))
.distinct()
.forEach(word->{
整数计数=0;
for(int i=0;i
您可以尝试以下代码:
import java.util.ArrayList;
import java.util.List;
public class Sam {
public static void main(String... args) {
String str="hai hello";
List<Integer> list=new ArrayList<>();
String[] s=str.split(" ");
for(int i=0;i<s.length;i++) {
list.add(a(s[i]));
}
System.out.println(list); //output : [2,2]
}
static int a(String s) {
int cou=0;
for(int i=0;i<s.length();i++) {
if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u') {
cou++;
}
}
return cou;
}
}
import java.util.ArrayList;
导入java.util.List;
公共类Sam{
公共静态void main(字符串…参数){
String str=“海你好”;
列表=新的ArrayList();
字符串[]s=str.split(“”);
对于(int i=0;i您可以尝试以下代码:
import java.util.ArrayList;
import java.util.List;
public class Sam {
public static void main(String... args) {
String str="hai hello";
List<Integer> list=new ArrayList<>();
String[] s=str.split(" ");
for(int i=0;i<s.length;i++) {
list.add(a(s[i]));
}
System.out.println(list); //output : [2,2]
}
static int a(String s) {
int cou=0;
for(int i=0;i<s.length();i++) {
if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u') {
cou++;
}
}
return cou;
}
}
import java.util.ArrayList;
导入java.util.List;
公共类Sam{
公共静态void main(字符串…参数){
String str=“海你好”;
列表=新的ArrayList();
字符串[]s=str.split(“”);
对于(inti=0;i,只是为了展示另一个简单的概念……使用带有(RegEx)的方法来计算单词或字符串中的元音数
方法中使用的正则表达式(“(?i)[^aeiou]”
)基本上告诉方法用空字符串替换所有字符(“)这不是a、e、i、o或u,不管字母大小写如何。然后我们取剩余的字符数(所有元音)作为单词或字符串中元音数的计数,因为它们是唯一未被替换的字符:
String a = "This sentence has vowels";
int vowelCount = 0;
String[] words = a.split("\\s+");
for (int i = 0; i < words.length; i++) {
vowelCount = words[i].replaceAll("(?i)[^aeiou]", "").length();
System.out.println("Word #" + (i + 1) + " [" + words[i] +
"] contains " + vowelCount + " vowels.");
}
只是为了展示另一个简单的概念…使用带有(RegEx)的方法来计算单词或字符串中的元音数
方法中使用的正则表达式(“(?i)[^aeiou]”
)基本上告诉方法用空字符串替换所有字符(“)这不是a、e、i、o或u,不管字母大小写如何。然后我们取剩余的字符数(所有元音)作为单词或字符串中元音数的计数,因为它们是唯一未被替换的字符:
String a = "This sentence has vowels";
int vowelCount = 0;
String[] words = a.split("\\s+");
for (int i = 0; i < words.length; i++) {
vowelCount = words[i].replaceAll("(?i)[^aeiou]", "").length();
System.out.println("Word #" + (i + 1) + " [" + words[i] +
"] contains " + vowelCount + " vowels.");
}
你可以用正则表达式来表示
String string = "hai hello";
String[] wordAr = string.split(" ");
for (String s : wordAr) {
System.out.println(s.replaceAll("(?i)[^aeiouy]", "").length());
}
(?i)将使字符不区分大小写您可以使用正则表达式来
String string = "hai hello";
String[] wordAr = string.split(" ");
for (String s : wordAr) {
System.out.println(s.replaceAll("(?i)[^aeiouy]", "").length());
}
(?i)将使字符不区分大小写可能会帮助您给定的代码有什么问题?请阅读“如何创建”。然后使用链接改进您的问题(不要通过注释添加更多信息)。否则,我们无法回答您的问题并帮助您。输出“12”…对吗?…单词1有两个元音(a,i)单词2有两个元音(e,o)。首先,找到一种方法,在String[]words
中拆分String
。然后,你所要做的就是定义一个char[]voxels
来简化你的测试。可能会帮你解决给定代码的问题吗?请阅读“如何创建”。然后使用链接来改进你的问题(不要通过评论添加更多信息)。否则我们无法回答您的问题并帮助您。输出“12”…对吗?…单词1有两个元音(a,i),单词2有两个元音(e,o)。首先,找到一种方法在字符串[]单词中拆分字符串
。然后,您所要做的就是定义一个字符[]元音
可以简化测试。