我曾经也遇到过这样问题 没找到好的解决办法 只能在生成csv文件的过程中限定把分隔符设置成比较特殊的符号。顶一下,看其他人有什么高招!
解决方案 »
- 普通类获取spring中的bean.....
- Swing获取JFRAME的位置(移动后的)
- java的向上转型,好象有的叫向上塑性!求高手们指点,越清晰越好!
- 初学 碰到问题了,谢谢 大虾指点!!
- 关于字符串比较的一点不解~
- ConcurrentModificationException的例子
- 请问在哪里可以下载JBuilder6的中文教材?
- 各位大虾请问:有本<java完全探索>的书怎么样
- 请问各位如果c++还比较熟的话,学会java是多长时间?一个星期?一个月内?
- Jsoup成对抓取标签内容
- 请问java怎样求自然对数。。谢谢
- 请问有那位高人用过Java Advanced Imaging (JAI) API?
数据中有,的话,必须要被""引起来,有一定规律.
String tempStr = str.trim();
List tempList = new ArrayList();
int lngSplit = 0;
int lngBufLen = tempStr.length();
boolean blnAddWord = false; String strChar = "";
String strWord = "";
String strTemp = "\"";
String strSplit = ",";
if ( lngBufLen > 0 ) {
for ( int i = 0; i < lngBufLen; i++ ) {
strChar = tempStr.substring( i, i + 1 );
if ( ( strChar.equals( strTemp ) ) && ( lngSplit == 0 ) ) {
lngSplit = 1;
} else if ( ( strChar.equals( strTemp ) ) && ( lngSplit == 1 ) ) {
if ( ! ( i == lngBufLen - 1 ) ) {
if ( !tempStr.substring( i + 1, i + 2 ).equals( strSplit ) ) {
lngSplit = 1;
strWord = strWord + strChar;
} else {
lngSplit = 2;
}
}
if ( i == lngBufLen - 1 )
blnAddWord = true; } else if ( ( strChar.equals( strTemp ) ) && ( lngSplit == 2 ) ) {
strWord = strWord + strChar;
lngSplit = 1;
} else if ( ( strChar.equals( strTemp ) ) && ( lngSplit == 1 ) ) {
strWord = strWord + strChar;
} else if ( ( !strChar.equals( strTemp ) ) && ( !strChar.equals( strSplit ) ) ) {
strWord = strWord + strChar;
if ( i == lngBufLen - 1 )
blnAddWord = true;
} else if ( strChar.equals( strSplit ) && ( lngSplit == 1 ) ) {
strWord = strWord + strChar; } else if ( ( strChar.equals( strSplit ) && ( lngSplit == 0 || lngSplit == 2 ) ) ||
( i == lngBufLen - 1 ) ) {
blnAddWord = true;
}
if ( blnAddWord ) {
tempList.add( strWord );
strWord = "";
lngSplit = 0;
blnAddWord = false;
}
}
}
return tempList;
}这是写完的函数已经能够对一般的csv文件进行拆分了,但是有极限还是控制不了。希望各位朋友能够在这个基础上再加以修改能过做到无懈可击。 谢谢各位了