我试图通过将错误添加到数组来解析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));
}
}
答案 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;
使用正则表达式提取字符串更清晰,仍然可以扩展。