为什么count ++不能在我的代码中工作?

时间:2016-11-07 01:29:58

标签: java

这是我给出的问题: 编写一个程序,将网站名称作为键盘输入,直到用户输入单词' stop'。该程序还必须计算有多少网站名称是商业网站名称(以.com结尾)和输出计数。

以下是我遇到的问题:例如,如果我输入' facebook.com',' google.com',' pintrest'输出会说我进入了三个商业网站,尽管我的两个网站以com结尾。 有人可以解释我哪里出错了,解决问题的最佳方法是什么?这是我的代码。

import java.util.Scanner;


public class NewClass 
{
public static void main( String [] args)

{

    int count = 0;
    String commercialNames = "com";
    final String SENTINEL = "stop";
    String website;

    Scanner scan = new Scanner(System.in);
    System.out.print("Enter a website, or 'stop' to stop > ");
    website = scan.next();

    String substring = website.substring(website.length()-3);

    while (!SENTINEL.equals(website))

    {
        if(substring.equals(commercialNames))
        { 
            count++;
        }
        System.out.print( "Enter the next site > ");
        website = scan.next();
    }

         System.out.println( "You entered " + count + " commercial websites.");
        }




}

谢谢!

3 个答案:

答案 0 :(得分:2)

您在获取新输入substring后必须指定变量website。所以,它应该是

String substring;
while (!SENTINEL.equals(website))    
    {
        substring = website.substring(website.length()-3);  
        if(substring.equals(commercialNames))
        { 
            count++;
        }
        System.out.print( "Enter the next site > ");
        website = scan.next();

    }

答案 1 :(得分:0)

String substring = website.substring(website.length()-3);

该变量仅设置一次。 website更改时,您不会重新计算它。

答案 2 :(得分:0)

您的子串位于错误的位置。您为第一个条目初始化一次,然后忘记更改它。

while (!SENTINEL.equals(website))

{
    String substring = website.substring(website.length()-3);
    if(substring.equals(commercialNames))
    { 
        count++;
    }
    System.out.print( "Enter the next site > ");
    website = scan.next();
}