📄 gscsvrecord.java
字号:
package jp.co.sjts.gsession.tools;
import java.text.StringCharacterIterator;
import java.text.CharacterIterator;
/**
* CSV僼傽僀儖偐傜儗僐乕僪扨埵偺暘妱張棟傪峴偄傑偡丅
*
* @author Hideyuki KITADE <kitade@sjts.co.jp>
*/
public class GSCsvRecord{
private String strData ;
private int intPos = 0 ;
private int intMax ; //僨乕僞挿
/**
* CSV僼傽僀儖偺撪梕傪String宆偱僙僢僩偟傑偡丅
*
* @param strData CSV僼傽僀儖偺撪梕
*/
public GSCsvRecord(String strData){
this.strData = strData;
intMax = this.strData.length();
}
/**
* CSV僼傽僀儖偺撪梕(char[]宆)傪String宆偱僙僢僩偟傑偡丅
*
* @param chrData CSV僼傽僀儖偺撪梕
*/
public GSCsvRecord(char[] chrData){
this.strData = new String(chrData);
intMax = this.strData.length();
}
/**
* 師偺儕僞乕儞埵抲傪曉偟傑偡丅
*
* @param intStart 奐巒埵抲
* @return 師偺儕僞乕儞埵抲
*/
private int __nextRt(int intStart){
if (intStart >= intMax){
return intMax;
}
boolean blnFlg = false;
String str = "";
str = strData.substring(intStart);
StringCharacterIterator stit= new StringCharacterIterator(str);
for(char ch=stit.first();ch!=CharacterIterator.DONE;ch=stit.next()){
intStart++;
if (ch == '\n' && blnFlg ){
break;
}else if (ch == '\r'){
blnFlg = true;
}else{
blnFlg = false;
}
}
return intStart;
}
/**
* 儗僐乕僪悢傪曉偟傑偡丅
*
* @return 儗僐乕僪悢
*/
public int getCount(){
int i = 0;
int intCnt = 1;
while ((i = __nextRt(i)) < intMax) {
i ++;
intCnt ++;
}
return intCnt;
}
/**
* 師偺儗僐乕僪傪偐偊偟傑偡丅
*
* @return 1儗僐乕僪
*/
public String getNextRecord(){
if (intPos >= intMax){ //師偺僨乕僞偑側偔側偭偰傕僄儔乕側偟偵偡傞
return "";
}
int intNextp = __nextRt(intPos);
String str = strData.substring(intPos,intNextp);
intPos = intNextp;
return str;
}
/**
* 師偺儗僐乕僪偑桳傞偐妋擣偟傑偡丅
*
* @return 師偺true 儗僐乕僪偼懚嵼偟傑偡丅false 師偺儗僐乕僪偼懚嵼偟傑偣傫丅
*/
public boolean hasMoreRecord(){
return (__nextRt(intPos) < intMax);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -