如何遍历数组并从ArrayList创建子串?

时间:2014-11-19 22:43:24

标签: java arrays loops arraylist substring

我试图通过将错误添加到数组来解析HTML验证错误,然后循环遍历数组,去掉错误的第一部分(例如ValidationError第23行col 40 :)然后我只想将文本保留在单引号内并将其保存到新列表中。

这是我的工作,但我知道它不可扩展,只适用于String fullText,而不适用于ArrayList列表,因此我需要帮助。谢谢!

package htmlvalidator;

import java.util.ArrayList;

public class ErrorCleanup {

public static void main(String[] args) {
    //Saving the raw errors to an array list
    ArrayList<String> list = new ArrayList<String>();

    //Add the text to the first spot
    list.add("ValidationError line 23 col 40:'Bad value ius-cors for attribute name on element meta: Keyword ius-cors is not registered.'");

    //Show what is in the list
    System.out.println("The full error message is: " + list);       

    String fullText = "ValidationError line 23 col 40:'Bad value ius-cors for attribute name on element meta: Keyword ius-cors is not registered.'";

    //Show just the actual message
    System.out.println("The actual error message is: " + fullText.substring(fullText.indexOf("'") + 1));


}

}

1 个答案:

答案 0 :(得分:1)

使用foreach循环:

List<String> list = new ArrayList<String>();
List<String> msgs = new ArrayList<String>();
for (String s : list) {
    msgs.add(s.replaceAll(".*'(.*)'.*", "$1"));
}
list = msgs;

使用正则表达式提取字符串更清晰,仍然可以扩展。