次のコードは、csv ファイルを読み取り、csv ファイルの行から取得したフィールドを定義します。問題は、csv ファイルの firstname 列にカンマ「,」を含む名前があることです (たとえば、Charles、Junior)。コンマとそれに続く名前は名の一部です。これらのコンマをチェックし、ファーストネーム自体の一部であるため、区切り記号として無視する効率的な方法を考え出すのに苦労しています。コンマが存在すると、望ましくない新しいタブが作成されます。csvファイルを改ざんせずにこれを行う必要があります。助言がありますか?
//skip the first line since it is column names
strLine = br.readLine();
int tokenNumber= 0;
//read comma separated file line by line
while( (strLine = br.readLine()) != null)
{
//break comma separated line using ","
st = new StringTokenizer(strLine, ",");
while(st.hasMoreTokens())
{
switch (tokenNumber)
{
case 1: firstName = st.nextToken(); break;
case 2: lastName = st.nextToken(); break;
default: st.nextToken(); break;
}
tokenNumber++;
}