를 존중하지 않는다 I 문자열 배열로 탭 구분 된 문자열을 추출하고 다음 코드를 가지고자바 : 있고 StringTokenizer 세퍼레이터
static public List<String> getContents(File aFile, String separator){
// all strings, split based on separator
List<String> contentList = new ArrayList<String>();
StringTokenizer tokenizer = new StringTokenizer(Util.getContents(aFile), separator);
while (tokenizer.hasMoreTokens()){
contentList.add(tokenizer.nextToken());
}
return contentList;
}
이 경우에는 세퍼레이터 따라서 "\의 t"이다.
두 개의 문자열이 하나의 탭으로 구분되는 한 모든 것이 좋습니다. 그러나 내 데이터 세트에는 두 개의 탭으로 구분 된 두 개의 문자열이있는 경우가 있습니다. 즉, 하나의 매개 변수가 누락되어 있고 emptry 문자열이 목록에 추가됩니다. 그러나이 메서드는이를 무시하고 문자열 하나가 적은 배열을 반환합니다.
내 경우에는 항상 5 개의 문자열 배열을 원합니다. 즉, 텍스트가없는 탭이 4 개만있는 텍스트는 5 개의 빈 문자열 배열을 반환합니다 (이 구문을 기반으로하는 구문 분석 작업에 필요함). 불행히도 콘텐츠에 대한 제어권이 없으며 제어 할 수없는 수백만 개의 파일로 작업하고 있습니다.
StringTokenizer에서 더 좋은 방법이 있습니까? 아니면 직접 구현해야합니까? 여기
일부 예 :
문자열 확인이 \의 테라 바이트 = \ TC \ TD \ TE 문자열 NOK = A \ 결핵은 \ TC \ t \ TE
랄프