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() ;