我有一個文本文件。文件中的每一行都表示一個記錄,其中列的分隔符爲'n'列(管道)字符。列值的類型爲int,字符串,日期,時間戳記等。空字符串和空格也可以作爲列值。檢查java中記錄的模式
我只驗證列值的數量和數據類型的驗證不是必需的。
1234|xyz|abc|2016-04-08 11:12:40|234
1235|efgh|abc|2016-04-09 11:25:40|
1236|efghij| ||
輸入驗證碼:每5列
樣品的有效記錄
boolean valid = true;
String line = buffReader.readLine();
String[] tokens = null;
while (line != null){
tokens = line.split("\\|");
if ((tokens.length==4 || tokens.length==5) && countPipes(line)==4){
} else {
valid = false;
break;
}
line = buffReader.readLine();
}
private int countPipes(String line){
int count = 0;
count = line.length() - line.replace("|", "").length();
return count;
}
我覺得這個代碼可以更好。 有人可以讓我知道如何改善此代碼?
您是否允許在列值中使用'|'轉義?如果是的話,你的驗證需要處理這個。 – dpr
@RealSkeptic感謝您指出錯誤。我已糾正它。 – Marco99
@dpr列值不會有「|」當然。 – Marco99