2016-11-07 203 views
0

下面是我給出的問題: 編寫一個程序,將網站名稱當作鍵盤輸入,直到用戶鍵入單詞「stop」。該程序還必須計算有多少網站名稱是商業網站名稱(以.com結尾)並輸出該數量。爲什麼count ++不能在我的代碼中工作?

這是我一直遇到的問題:例如,如果我輸入'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

在輸入新的輸入website之後,您必須指定變量substring。所以,它應該是

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(); 
} 
相關問題