1、对于使用list的缘由,因为一开始我本想用数组来保存客户输入的行数的,但是查了下数组的初始化没有动态自适应存储客户的函数,它只有两种初始化形式。例如:
a.直接初始化 int array1[] = {2,2,3,4}; String array1[]={"hello","world"};
b.动态初始化 int array1[] = new int[3]; array1[0] = 1; array1[1] = 2; array1[2] = 3; String array1[]; String array1 = new String[3]; array1[0] = new String("Hello"); array1[1] = new String("World"); array1[2] = new String("!");
所以我采用的list写法是下面这样的:
List<Integer> errorRow = new ArrayList<Integer>(); //统计错误的行数 //这一行是有个业务所要求的for循环不断添加sum的数据的,list的添加数据并不像数组那样要通过下标i++来进行后移,它会自动后移的 errorRow.add(new Integer(sum)); //list取数据用到了get9()方法,这里写的是把取出来的数据拼凑成一个字符串了 String error_row=""; for(int k=0; k<errorRow.size(); k++) { error_row+=(Integer)errorRow.get(k)+";"; }
2、String的使用,主要是分割函数split和截取子串函数substring
对于split()有个很重要要注意的地方如下:
a、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
b、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";
var msg_sum = data.split("/"); var msg = msg_sum[0].split(","); var msg_error = msg_sum[1].split(";"); //错误的行数 saveError = saveError.substring(0,saveError.length - 1); //去除字符串最后一个,
3、正则表达式
//其中'\\d'表示要求为数字 Pattern p = Pattern.compile("\\d-\\d"); //匹配正则表达式的内容 p.matcher(params[0]).find() ;