首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java程序显示的结果比预期的结果少一个

Java程序显示的结果比预期的结果少一个
EN

Stack Overflow用户
提问于 2015-01-21 08:58:17
回答 1查看 84关注 0票数 2

我在一个有竞争力的编码网站上做这个练习问题。我们有一个场景,在这个场景中,我们有一个智能浏览器,在其中我们不需要输入“www”。两个元音都没有。浏览器通过自己的方式输入这两件事。

我正在编写一个程序,显示智能网页网址和完整网页网址中字符号的比例。即。例如,www.google.com的智能url应该是ggl.com。因此,程序的显示将是7/14。我这样做了,但我的显示器是6/14。也就是说,每个测试用例都少一个.It。我不知道问题出在哪里

代码语言:javascript
复制
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--;

    }   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-21 09:00:09

ggl.com仍然包含元音,因此循环将减少ocount,程序将返回6而不是7。

注意,一般来说,url的域名可以有不同数量的元音-例如,comgovnet有1,edu有2,fr有0。您的代码应该忽略上一个.后面的元音。

这可以解决您的问题:

代码语言:javascript
复制
  ....
  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同时保存在计数中,则必须更改逻辑。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28063086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档