【问题标题】:Better way to make arrays from arraylists?从数组列表制作数组的更好方法?
【发布时间】:2013-09-02 22:53:53
【问题描述】:

这里的问题是我一直在尝试(但没有成功)获取网站的源代码并找到一些文本,然后将其放在 jLabel 上。

获取代码的部分已经完成并且工作正常,当我尝试获取代码的结果(使用正则表达式)并将每个结果放入不同的字符串时(然后,使用 setText() 方法,将它们放在不同的 jLabel 上)。

我在很多论坛上问过,他们告诉我使用 ArrayLists:

Matcher m = p.matcher(code); 

while (m.find()) {
    String grupo = m.group(1);
    ArrayList lista = new ArrayList();
    lista.add(0,grupo);
    for(int i = 0;i<lista.size();i++){
        System.out.println(lista.get(i));

在这段代码中,理论上,程序会根据我之前设置的一些模式找到代码,并将结果“保存”到一个 ArrayList 中。

重要的是我无法将每个结果放入不同的字符串中,并且程序在控制台上不断告诉我 arraylist 的大小为 1,而保存的结果有 10 或 12 个元素. 但是,当我使用该代码运行程序时,它会显示所有元素。

【问题讨论】:

  • 问题是您正在循环内重新创建列表。在外面声明列表。

标签: java regex arrays string arraylist


【解决方案1】:

使用泛型并按如下方式构建您的代码:

ArrayList<String> lista = new ArrayList<>();
while (m.find()) {
    String grupo = m.group(1);
    lista.add(0, grupo);
}

然后您可以打印列表元素:

for (String str : lista) {
    System.out.println(str);
}

【讨论】:

  • 谢谢!现在,我需要一种将其中一个元素打印到字符串中的方法,例如,包含该列表的元素 3 的字符串。
  • @SebastiánPazPereira: lista.get(2); 返回列表的第三个元素。
  • 这对我帮助很大。但是你知道为什么这个列表现在看起来是颠倒的吗?我需要一种方法来扭转局面
  • @SebastiánPazPereira:使用lista.add(grupo); 而不是lista.add(0, grupo);
  • @SebaPaz:如果这解决了您的问题,请接受答案(绿色复选标记),让社区知道问题已解决。
【解决方案2】:

导入 java.util.Collections;

List myList = new ArrayList(); String[] myArray = new String[] {"Java", "Util", "List"};

Collections.addAll(myList, myArray);

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多