日期:2014-05-20  浏览次数:20695 次

各位,帮我加注释。
package   seerp.struts.action.gt;

import   java.util.ArrayList;
import   java.util.List;

public   class   splitCSV   {


private     List   splitCSV1(String   src)   throws   Exception   {

//每行的数据
StringBuffer   sb   =   new   StringBuffer();

List   result   =   new   ArrayList();
char   ch;
boolean   beginWithQuote   =   false;
for   (int   i   =   0;   i   <   src.length();   i++)   {
ch   =   src.charAt(i);
switch   (ch)   {
case   '   ':
case   '  ':
if   (beginWithQuote   ||   sb.length()   !=   0)   {
sb.append(ch);
}
break;
case   '\ " ':
if   (beginWithQuote)   {
if   ((++i)   > =   src.length())   {
result.add(sb.toString());
sb   =   new   StringBuffer();
beginWithQuote   =   false;
}   else   if   ((ch   =   src.charAt(i))   ==   '\ " ')   {
sb.append(ch);
}   else   {
while   ((ch   =   src.charAt(i))   !=   ', ')   {
if   (ch   !=   '   '   &&   ch   !=   '  ')   {
throw   new   Exception(
"Single   double-quote   char   mustn 't   exist   in   filed   "
+   (result.size()   +   1)
+   "   while   it   is   begined   with   quote\nchar   at: "
+   i);
}
i++;
if   (i   >   src.length())   {
break;
}
}
result.add(sb.toString());
sb   =   new   StringBuffer();
beginWithQuote   =   false;
}
}   else   if   (sb.length()   ==   0)   {
beginWithQuote   =   true;
}   else   {
throw   new   Exception(
"Quote   cannot   exist   in   a   filed   which   doesn 't   begin   with   quote!\nfield: "
+   (result.size()   +   1));
}
break;
case   ', ':
if   (beginWithQuote)   {
sb.append(ch);
}   else   {
//result.add(trimPlus(sb.toString()));
sb   =   new   StringBuffer();
if   (i   ==   src.length()   -   1)   {
result.add(sb.toString());
}
beginWithQuote   =   false;
}
break;
default:
sb.append(ch);
break;
}
}
if   (sb.length()   !=   0)   {
if   (beginWithQuote)   {
throw   new   Exception(
"last   field   is   begin   with   but   not   end   with   double   quote ");
}   else   {
result.add(sb.toString());
}
}
return   result;
}
}


------解决方案--------------------