我一直在环顾该网站,但找不到问题的答案。我需要能够浏览给定数量的字符串并计算单词中的元音数量。如果元音的数量与之前输入的数字匹配,则打印 YES。我尝试使用字符串数组,然后遍历数组中的每个单词以查找元音,为找到的每个元音增加元音检查(vocheck),然后检查vocheck是否等于适当的数字。但是,当我检查 vocheck for 循环是否有效时,它只是将 vocheck 保持为 0。怎么了?
import java.util.*;
public class verses {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int lines = input.nextInt();
int[] arr = new int[lines];
int vowels = 0;
boolean vcheck = true;
int vocheck = 0;
for(int i = 0; i < lines; i++){
arr[i] = input.nextInt();
}
String[] word = new String[lines];
for(int x = 0; x < word.length; x++){
word[x] = input.nextLine();
}
word[word.length-1] = input.nextLine();
for(int m = 0; m < lines; m++){
for(int y = 0; y < word[y].length(); y++){
if(word[m].charAt(y) == 'a'
|| word[m].equals('e')
|| word[m].equals('i')
|| word[m].equals('o')
|| word[m].equals('u')
|| word[m].equals('y')){
vocheck++;
}
}
if(vocheck != arr[m]){
vcheck = false;
}
}
if(vcheck == true){
System.out.println("YES");
}else{
System.out.println("NO");
}
}
}
这就是示例输入的样子 3 2 2 3 英特尔代码挑战
这应该打印YES,因为有三个单词,第一个有2个元音,第二个有2个元音,第三个有3个元音
你为什么不尝试一些正则表达式:)
public static void main(String[] args) throws InterruptedException {
String s = "4 2 2 3 2 intel code challenge aa";
s = s.replaceAll("(?i)[^\\daeiou ]", ""); // replace all consonants with empty String.
String[] arr = s.split("\\s+"); // Split based on space.
int count = 0;
System.out.println(Arrays.toString(arr));
for (int i = 1; i <= arr.length / 2; i++) {
// Check for equality of String lengths and input values
if (Integer.parseInt(arr[i]) == arr[arr.length / 2 + i].length()) {
count++;
} else {
System.out.println("NO");
return;
}
}
// Check if counts of String are same as number of Strings
if (count != Integer.parseInt(arr[0])) {
System.out.println("NO");
} else {
System.out.println("YES");
}
}
操作 :
[4, 2, 2, 3, 2, ie, oe, aee, aa]
YES
你可以做这样的事情:
for(int i = 0; i < lines; i++){
if(word[i].toLowerCase().replaceAll("[^aeiouy]", "").length() == arr[i]){
System.out.println("Word " + word[i] + " has " + arr[i] + " vowels");
}else{
System.out.println("Word " + word[i] + " DOESN'T HAVE " + arr[i] + " vowels");
}
}
这个word[i]. toLowerCase(). replace eAll("[^aeiouy]", "").长度()
所做的是将单词中的所有字母更改为小写字母(toLowerCase()
),替换其中所有非元音字符(replace eAll("[^aeiouy]", "")
)并获取剩余字符的数量(长度()
),元音的数量。
这里存在多个问题:
>
input.nextLine();
。这是必要的,否则数组word
中的第一个条目将是前一行的其余部分。word[word.length-1]=input.nextLine();
不是必需的votest
必须为循环的每次迭代初始化for(int y=0; yimport java.util.*;public class verses {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int lines = input.nextInt();
int[] arr = new int[lines];
int vowels = 0;
boolean vcheck = true;
int vocheck = 0;
for(int i = 0; i < lines; i++){
arr[i] = input.nextInt();
}
input.nextLine();
String[] word = new String[lines];
for(int x = 0; x < word.length; x++){
word[x] = input.nextLine();
}
//word[word.length-1] = input.nextLine();
for(int m = 0; m < lines; m++){
vocheck = 0;
for(int y = 0; y < word[m].length(); y++){
if(word[m].charAt(y) == 'a'
|| word[m].charAt(y) == 'e'
|| word[m].charAt(y) == 'i'
|| word[m].charAt(y) == 'o'
|| word[m].charAt(y) == 'u'
|| word[m].charAt(y) == 'y'){
vocheck++;
}
}
if(vocheck != arr[m]){
vcheck = false;
}
}
if(vcheck == true){
System.out.println("YES");
}else{
System.out.println("NO");
}
}
}
我一直在试图弄清楚如何计算句子每个单词中的元音和字符。例如 在句子 < code>hello : 5个字符,2个元音 <代码>有:5个字符,2个元音 。我见过完整句子做同样事情的代码。但不是一个字一个字地。 下面是我一直在做的编码 输入将全部。我很难弄清楚这一点。 在运行代码时,我没有得到元音计数。我能把句子分开。但元音计数没有发生。
我正试图写一个C程序来计算元音、键击和字母字符的数量。击键计数器正在工作,但是元音计数器总是关闭一个元音。阿尔法计数器坏了。
给定一个句子,我希望能够数出每个单词中有多少个元音。 示例输入: 示例输出: 我最初的想法是有2个同时循环。第一个循环直到满足EOF以结束程序,第二个(嵌套的)同时循环将运行直到满足空格 (" ") ,同时还对当前单词中的元音求和。一旦遇到空格,它将打印出元音的当前值,第二个同时循环将结束并重新开始(元音计数器重置回0)。 这是我为此编写的代码: 然而,这导致语法错误,我不能找出我的错误。 第6行
考虑以下代码来计算每个单词中字母“a”的出现次数: 这将导致这样的事情: 我试图做更多的事情: 计算每个单词中的元音总数 合计编号每个单词中的字母数 一个单词是否以元音开头,则 1 否则 0 单词是否以元音结尾,则 1 否则 0 问题是,如果我使用nchar(data$string),它也计算点'.'此外,我无法找到以上4个要求的帮助。 最终数据我想看起来像这样:
问题内容: 如何检查句子在Python中是否有效? 例子: 问题答案: 查看NLTK。他们支持语法,您可以使用语法来分析句子。您可以定义语法,也可以使用提供的语法以及无上下文的解析器。如果句子解析,那么它具有有效的语法;如果没有,那就没有。这些语法可能没有最广泛的覆盖范围(例如,它可能不知道如何处理StackOverflow之类的单词),但是这种方法可以让您明确说明语法中有效或无效的内容。 NLT
在循环结束时,我计划显示句子中辅音和元音的数量。我想知道是否有更有效的方法来检查给定句子中有多少辅音和元音,而不是使用if语句手动输入每个字母。(key指的是我已经初始化的扫描仪) 编辑:它需要忽略数字和其他特殊字符,例如,如果我写你好@你好吗?。应该有8个元音和6个辅音。