데이터베이스로 가져 오기 위해 스크럽하려고하는 플랫 파일이 있습니다. 레이아웃은 일관성이 없지만 필드 이름 (가변 길이 텍스트이지만 항상 9 단어 또는 구 중 하나) 다음에 자유 형식 텍스트 필드 (가변 길이는 최대 1024 바이트)로 구성됩니다. 1024 바이트 필드를 추출하여 필드 이름에 걸쳐 열로 정렬해야합니다.변수에 여러 String 메서드를 사용하는 적절한 방법은 무엇입니까?
입력 파일 : - : 각 라인을 읽고
foo-01 bunches of data
foo bar01 more bunches of data including a bunch of notes
foo-01 lots of data lives in this field
foo18 monday notes
...etc.
출력 파일 구분은 공간 내 전략이이
foo-01;foo bar 01;foo18 (<-- header row)
bunches of data; more bunches of data including a bunch of notes; ;
lots of data lives in this field; ; notes
을 손질. 줄이 9 개의 필드 이름 중 하나로 시작하면 해당 줄 위치의 분리 된 플랫 파일로 부분 문자열 (필드 이름 뒤의 첫 번째 문자부터 줄 끝의 마지막 문자까지)을 작성합니다.
이 코드는 작동
if(inputLine.startsWith("foo-01"))
{
String lineVal = inputLine.trim();
int lVLen = lineVal.length();
String outVal = lineVal.substring(17,lVLen);
String outValTrim = outVal.trim();
System.out.println(evalVal+" "+inputLine+" "+outValTrim);
}
else
...etc...
그러나 질문을 제기한다.
고려 :
String outValTrim = inputLine.trim().substring(17,inputLine.trim().length()).trim();
내가 사용할 수있는 방법의 최대 수는 무엇입니까? 예 :
foo = Stringmethod1.Stringmethod2.StringMethod3()
명세서의 메소드 순서에 대한 규칙이 있습니까?
하나의 문장에서 여러 방법을 조합하는 것이 가장 좋은 방법은 무엇입니까? 나는 사람이 읽을 수있는 편이 아니라고 느낀다. 나는 효율성에 대해 확신하지 못한다.
Peter는 귀하의 직접적인 질문에 잘 답변했습니다. 따로 따로 split 명령을 사용하여 데이터 필드를 더 읽기 쉽게 분할 할 수 있습니다. 예 : String headerAndData [] = inputLine.trim(). split ("", 1); – phatfingers