我必须根据以下格式验证并从文本文档中提取代码字符串。
Title: title
YLabel: YLabel
XLabel: XLabel
XStart: numeric value
XInterval: numeric value
3.5, 5, 7, 9..etc
我需要捕获所有数据并根据此模式进行验证。我尝试使用.split()函数,但感到困惑。 这是我到目前为止所做的:
public boolean validateFile(String info) {
// split all the words and trim commas/whitespaces
String[] validate = info.split("\\s");
for(int i=0; i<validate.length; i++) {
if(validate[i].equals("XStart:") || validate[i].equals("XInterval:")) {
try {
double d = Double.parseDouble(validate[i+1]);
info += validate[i+1]+" ";
}
catch(NumberFormatException x) {
info = "invalid file format";
return false;
}
}
}
return true;
}
此处信息包含从文本文件中提取的所有数据。最终结果将是前两个数值。但是,我如何验证文件是否与其格式一致。
答案 0 :(得分:1)
使用属性名称数组,因此您可以处理所有通用名称。
按住模型,表格:
String[] properties = {"YLabel", "XLabel", ...};
按行分割信息:
String[] lines = info.split("\r?\n"); // Split on line end
if (lines.length != properties.length + 1) {
return false;
}
for (int lineno = 0; lineno < properties.length; ++lineno) {
if (!lines[lineno].startsWith(properties[lineno] + ":")) {
return false;
}
}
String values = ... and the rest using split("\\s+").