2016-07-28 91 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的答案)。

因此,最后要么声明变量是静态的,要么在方法中声明它们,并将它们声明为一个字符串数组,并遍历它们而不是尝试构建要使用的变量名称。