2016-07-28 154 views
1

我試圖做聲明一個變量使用的公式或組合變量

我試圖分析50個不同的網站,但我想它通過1發生1,所以我會運行代碼下面是一個循環。實際的問題是,當我運行變量鏈接器時,它應該顯示鏈接而不是值A1。我不知道如果我決策意識,這是非常困難的解釋,但有什麼辦法,使魔術發生這可能是這個樣子

Document doc = Jsoup.connect(string (Alpha + counter) ).get(); 

我在哪裏可以聲明基於已命名的變量式/組合?

代碼

String A1 = "http://www.randomwebsite1/home.html"; 
String A2 = "https://sites.google.com/a/organization/contact-us"; 
String A3 = "http://www.alright.com/index.html"; 
String A4 = "http://www.youtube.com/"; 

public static void main(String[] args) throws IOException { 

      int counter = 1; 
      String Alpha = "A"; 
      String linker = Alpha + counter; 
      Document doc = Jsoup.connect(linker).get(); 
+0

你在做什麼錯?只是把它放在for循環中 –

回答

1

您只需動態地創建Stringarray並使用enhanced for-loop迭代它。

String[] urls = { 
     "http://www.randomwebsite1/home.html", 
     "https://sites.google.com/a/organization/contact-us", 
     "http://www.alright.com/index.html", 
     "http://www.youtube.com/" 
}; 

Document doc = null; 
for (String url : urls) { 
    doc = Jsoup.connect(url).get(); 
} 
0
int n = 2 //provide the value here.It can be anything. It is the number of websites you want to loop. 
    String[] A = new String[n]; 
    A[0] = "abc.com"; 
    A[1] = "xyz.com"; 

    for(int i=0; i<n; i++){ 
     Document doc = Jsoup.connect(A[i]).get(); 
    } 

這是太不工作?

+0

Eclipse正在彈出這個錯誤,「n不能解析爲變量」,我是初學者,是那個完整的代碼? –

+0

編輯了代碼。 –

0

幾件事錯在這裏...

第一:你有沒有你的聲明爲靜態變量,所以他們將無法從一個靜態方法(在你的情況:主)內訪問。

二:做這個像

int counter = 1; 
String Alpha = "A"; 
String linker = Alpha + counter; 
Document doc = Jsoup.connect(linker).get(); 

不Java中工作(它可以使用反射來完成,但你真的不需要知道,對於編程任務99%).. 。讓我帶您發生了什麼:

  1. 計數器被聲明爲值的int 1
  2. 阿爾法被聲明爲值「A」的字符串(Java約定決定了變量名以小寫信,但這不會影響執行)
  3. 接頭聲明爲值「A1」的字符串
  4. Jsoup.connect方法被調用,參數「A1」

爲了得到你想要的,你可以嘗試把你的網址字符串的效果數組並迭代遍歷數組以獲得每個數組(依照Nalin Agrawal的答案)。

因此,最後要麼聲明變量是靜態的,要麼在方法中聲明它們,並將它們聲明爲一個字符串數組,並遍歷它們而不是嘗試構建要使用的變量名稱。