这是我给出的问题: 编写一个程序,将网站名称作为键盘输入,直到用户输入单词' 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.");
}
}
谢谢!
答案 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();
}