Java程序显示结果比期望结果少一

标签 java

我在一个竞争性编码网站上做这个练习题。我们有一个场景,我们有一个智能浏览器,我们不需要输入“www”。也不是元音。浏览器自己输入这两个东西。

我正在编写一个程序,显示智能网址中字符数与完整网址中字符数的比率。 IE。例如 www.google.com 的智能 url 将是 ggl.com。因此节目的显示将是 7/14。我这样做了,但我的显示是 6/14。即少一个。它适用于每个测试用例。我不知道问题出在哪里

Scanner sc = new Scanner(System.in);
    int t = sc.nextInt();// no of testcases!

    while(t > 0)
    {
        String st = sc.next();
        int count = st.length();
        count = count-4;
        int count1 = st.length();
      for(char da:st.toCharArray())
        {
            switch(da)
            {
                case 'a':
                    count  = count -1;
                    break;

                    case 'e':
                    count = count -1;
                    break;

                    case 'i':
                    count = count-1;
                    break;

                    case 'o':
                    count = count -1;//System.out.println(da);
                    break;

                    case 'u':
                    count = count -1;
                    break;
            }
        }

        System.out.print((count ) +"/" +count1) ;
        System.out.println();
        t--;

    }   

最佳答案

ggl.com 仍然包含一个元音字母,因此您的循环将为 o 递减 count,并且您的程序将返回 6 而不是7.

请注意,一般情况下,url 的域名可以有不同数量的元音 - 例如,comgovnet 有 1 个,edu 有 2 个,fr 有 0 个。您的代码应该忽略最后一个 . 之后的元音。

这可以解决您的问题:

  ....
  String st = sc.next();
  int count = st.length();
  count = count-4;
  int count1 = st.length();
  st = st.substring(0,st.lastIndexOf('.')); // get rid of the domain name
  for(char da:st.toCharArray())
      ...

这假设只有最后一个 . 之后的元音应该保留在计数中。例如,如果在 .co.il 域中您希望同时保留 oi,您将拥有改变逻辑。

关于Java程序显示结果比期望结果少一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28063086/

相关文章:

java - 如何以更少的重复调用 set 方法。 ( java )

java - 哪个 NIO 库(Netty、Grizzly、kryonet,...)用于 Java 中的简单后端服务器实现?

java - 制作一个简单的计时器

java - jboss forge 与 spring roo 相比如何?

java - 如何从 HashMap 中的对象访问 ArrayList? java

java - 当 Angular 应用程序托管在子目录中时,如何在 Websphere 中进行 URL 重写

java - 创建带有背景图像的表单(JLayeredPane)

java - Java SVG 图形界面中的属性修改

java - 预填充 HSQL 表

java - 使用@Controller 获取所有带注释的 Controller