Java如何提取指定列的内容,并可以对其相应的操作
我的报错信息为java.lang.NumberFormatException: For input string: ""SMX""
private void Encode() {
try {
BufferedReader reader = new BufferedReader(new FileReader("待加密坐标.csv"));
//reader.readLine();//第一行信息,为标题信息
String line = null;
BufferedWriter writer = new BufferedWriter(new FileWriter("已加密坐标.csv"));
while((line=reader.readLine())!=null){
String item[] = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
String a = item[item.length-4];//提取首列
String x = item[item.length-3];//提取经度
String y = item[item.length-2];//提取纬度
String b = item[item.length-1];//提取末列
double X = Double.parseDouble(x);//将字符串转成双精度型
double Y = Double.parseDouble(y);
double[][] outXY = null;//声明局部变量并初始化
outXY[0] = encrypt(X,Y);
outXY[1] = encrypt(X,Y);
this.jTextArea2.append(a +","+ outXY[0]+","+ outXY[1] +","+ b + "," + "\r\n");
writer.write(a +","+ outXY[0]+","+ outXY[1] +","+ b + "," + "\r\n");
}
reader.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
} java exception
[解决办法]
"SMX" 无法转成数字,
检查下你的数据文件,是否有不符合规范的数据
[解决办法]
你试图吧
"SMX"转化成数据,所以报错。
String a = item[item.length-4];//提取首列
String x = item[item.length-3];//提取经度
String y = item[item.length-2];//提取纬度
String b = item[item.length-1];//提取末列
这些a,x,y,b都输出看一下,看看到底是不是数字形式
[解决办法]
java.lang.NumberFormatException: For input string: ""SMX""
问题说的很清楚了嘛,就是告诉你“SMX”不能转化成number
你看看你每个数据是否满足嘛,还有你csv中的数字也是有引号的,读出来肯定也是不能转换成数字撒