텍스트 파일이 있습니다. 파일의 각 행은 | '로 구분 된'n '개의 열을 갖는 레코드를 나타냅니다. (파이프) 문자. 열 값은 int, string, date, timestamp 등의 형식입니다. 빈 문자열과 공백도 열 값으로 사용할 수 있습니다.자바의 레코드 스키마를 확인하십시오.
데이터 값 유형의 유효성 검사와 유효성 검사가 필요하지 않습니다.
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