【问题标题】:counting the number of consonants in a string [closed]计算字符串中辅音的数量[关闭]
【发布时间】:2015-10-31 17:47:13
【问题描述】:

我的目标是计算字符串中辅音的数量,这是我的代码:

import java.io.*;
/**
 * Write a description of class Program46 here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Program46
{
    public static void main()throws IOException
    {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter phrase: ");
        String phrase=br.readLine();
        int lth=phrase.length();
        int ctr=0;
        for(int i=0;i<=lth-1;i++)
        {
            char a=phrase.charAt(i);
            boolean chk=Character.isDigit(a);
            if(a!='a'&&a!='e'&&a!='i'&&a=='o'&&a!='u'&&a!=' '&& chk==false)
                ctr++;

        }
        System.out.println("No. of consonents: "+ctr);
    }
}

程序可以编译,没有语法错误。 但是,当我在 void main() 中执行此操作时, 无论我输入什么,它计数的辅音数量始终为 0。 我的程序有错误吗?如果是这样,我请求您提出一种更好的方法来执行此操作,或者更正上述代码的方法。

【问题讨论】:

  • 修复此问题,代码将起作用:&amp;&amp;a=='o' 应为 &amp;&amp;a!='o'。我投票关闭作为一个错字。如果这能解决您的问题,请考虑删除问题。

标签: java string function bluej


【解决方案1】:

您偶然检查了当前字符 'o' (a=='o'),而不是检查它不是 (a != 'o')。

解决这个问题,你应该会没事的。

顺便说一句,请注意,Java 中 main 方法的正确签名是 public static void main(String[] args)

【讨论】:

  • 可能重复:stackoverflow.com/questions/25262270/…。请通过此链接,您将获得最佳解决方案。谢谢
  • @Mureinik 这是我使用的替代方案。但是,它的工作原理相同。
【解决方案2】:

您的代码有两处错误:

  1. 检查元音“o”时有错字。而不是a == 'o',应该是a != 'o'
  2. 即使您解决了这个问题,您的检查也只会考虑小写元音、空格字符和数字。如果被检查的字符不是这些字符中的任何一个,那么它将被视为辅音。这包括大写元音、特殊字符(!@#$ 等...)、其他空格字符('\t')和标点符号。

更正可能类似于:

public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter phrase: ");
    String phrase = br.readLine();
    int lth = phrase.length();
    int ctr = 0;
    for (int i = 0; i <= lth - 1; i++) {
        char ch = phrase.charAt(i);
        // Skip this character if it's not a letter
        if (!Character.isLetter(ch)) {
            continue;
        }

        if (ch != 'a' && ch != 'e' && ch != 'i' && ch != 'o' && ch != 'u' &&
            ch != 'A' && ch != 'E' && ch != 'I' && ch != 'O' && ch != 'U' ) {
            ctr++;
        }
    }
    System.out.println("No. of consonents: " + ctr);
}

一旦达到这一点,您就可以研究“改进”代码的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-05
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多