哎,我发现我遇到的就是一些奇怪的问题。本来在Eclipse中调试时可以的,但是在WebMethods中就不可以了。
问题描述:
1.将输入的字符串通过System.getProperty("line.separator");进行拆分。
2.将第一行(非空)赋值给header,最后一行(非空) 赋值为tail,并且统计中间的行数,并将中间内容赋值为detail
直接贴代码了。
说一下遇到问题的关键:
1.System.getProperty("line.separator");得到的数据在windows系统中是"/r/n"。在Linux中得到是";",
但是在用split分成数组的时候直接用返回的值进行分割的时候不可以,所以在程式中我算是转了一个弯,先将其转换成char在char的两边添加[]使其符合正则表达式的格式
在组合成string。没想到就可以了。
2.在split()时,参数为正则表达式。
public void process(){
/*
* 1.處理輸入的字符串,并將輸入的字符串拆分為header,detail,tail。其中detail可以為空。并輸出detail的條數。
* 2.當countDetail=-1時,表示處理失敗。
*/
// pipeline
// IDataCursor pipelineCursor = pipeline.getCursor();
// String inStr = IDataUtil.getString( pipelineCursor, "inStr" );
//
// pipelineCursor.destroy();
//
// IDataCursor pipelineCursor_1 = pipeline.getCursor();
///////////////////////////////////////////////////////////////////////////
String inStr = "/nheader1111111111111111111111/r/n" +
"detail1-------------------------------/r/n" +
"tail----------------------------------/r/n";
String newLine = System.getProperty("line.separator");//存儲分隔符
String newLineStatic=newLine;//以后要修改newLine這個來保存最初的newLine值。
List records = new ArrayList();//將分割后數組轉換為List方便處理
//String processedData = "";
String headerString = "";
String detailString = "";
String tailString = "";
int countDetail = 0;
char[] chars = newLine.toCharArray(); //將newLine String 轉換為Char數組,后面要在每個字符的兩邊添加[]
//判斷輸入的inStr是否為空。
if(inStr==null||(inStr.trim().equals(""))){
// IDataUtil.put( pipelineCursor_1, "headerString", headerString );
// IDataUtil.put( pipelineCursor_1, "detailString", detailString );
// IDataUtil.put( pipelineCursor_1, "tailString", tailString );
// IDataUtil.put( pipelineCursor_1, "countDetail", "-1" );
return;
}
newLine=""; //初始化newLine
//在每個字符的兩邊添加[]。使其符合正則表達式格式
for(int i=0; i
关于System.getProperty()的经验
最新推荐文章于 2025-08-13 22:55:15 发布