验证txt文件

时间:2017-11-09 21:37:11

标签: java validation

我必须根据以下格式验证并从文本文档中提取代码字符串。

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;
}

此处信息包含从文本文件中提取的所有数据。最终结果将是前两个数值。但是,我如何验证文件是否与其格式一致。

1 个答案:

答案 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+").