2016-11-07 3 views
0

Вот проблема, которую мне дали: Напишите программу, в которой имена веб-сайтов будут вводиться в виде клавиатуры, пока пользователь не наберет слово «стоп». Эта программа также должна подсчитать, сколько имен веб-сайтов являются коммерческими именами веб-сайтов (заканчиваются на .com) и выводят этот счет.Почему count ++ не работает в моем коде?

Вот проблема, с которой я сталкиваюсь: например, если я ввожу «facebook.com», «google.com» и «pintrest», на выходе будет указано, что я вошел в три коммерческих сайта, хотя только два из мои введенные сайты заканчиваются ком. Может кто-нибудь объяснить, где я поступил не так, и как лучше всего это исправить? Вот мой код.

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(); 

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

Эта переменная устанавливается только один раз. Вы не пересчитываете его при изменении website.

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(); 
} 
Смежные вопросы