把string换成double把string换成double
如何把string转换成double?
Java code
package acme2;
/**
*
* @author Bing
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileArrayProvider {...
把string换成double
如何把string转换成double?
Java code
package acme2;
/**
*
* @author Bing
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileArrayProvider {
//reference website:
//
public int i, j;
public Double[][] myArray = null;
public void readLines(String filename) throws IOException {
//public String[] readLines(String filename) throws IOException {
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader);
List String lines = new ArrayList String ();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
lines.add(line);
}
bufferedReader.close();
System.out.println(lines.size()); //lines.size()=245880
myArray = new Double[lines.size()/6][6];
int index = 0;
for( i = 0; i (lines.size()/6); i++){
for( j = 0; j 6; j++){
myArray[i][j] = lines.get(index) ; [b]/*Double.parseDouble(lines.get(index)) ; *Double.valueOf(s).doubleValue();
*问题出在这个二维数组上。原本lines是个string list,现在想把所有的内容读入到类型为double的二位数组myarray里,
尝试了网上提到的几个转换方式都没成功。谁还有好办法啊,谢谢啦
*/
[/b] index++;
System.out.println(myArray[i][j]);
}
}
}
}
/*Double.parseDouble(lines.get(index)) ;
*Double.valueOf(s).doubleValue();
*问题出在这个二维数组上。原本lines是个string list,现在想把所有的内容读入到类型为double的二位数组myarray里,
尝试了网上提到的几个转换方式都没成功。谁还有好办法啊,谢谢啦
*/
------解决方案--------------------------------------------------------
首先,你要确保你的lines保存的String都是符合Double类型的数据,否则转换会出错
其次,看你的意思好像是要6个一组保存到一个2维数组中,那么请确保你的数组不要越界,
比如lines.size不能整除6的时候,最后一个2维数组的元素必然不满6个,这时如果j
还是循环到6的话,就会造成越界
Java code
int cnt = lines.size()%6 == 0 ? lines.size()/6 : lines.size()/6 + 1;
myArray = new Double[cnt][6];
int index = 0;
for( i = 0; i myArray.length; i++){
for( j = 0; j 6; j++){
if (index lines.size()) { //避免越界
if (lines.get(index).matches( \\d+([.]\\d+)? )) {
myArray[i][j] = Double.valueOf(lines.get(index));
} else {
System.out.printf( error double[%s]\n , lines.get(index));
myArray[i][j] = 0.0;
}
System.out.println(myArray[i][j]);
} else {
break;
}
index++;
}
}
------解决方案--------------------------------------------------------
你的一行数据是3.04134 0.677819 11.4217 5.72507 4.59348 4.00403,怎么能转成Double
呢
要分割以后转换,即把3.04134转换,0.677819转换,等等,而不是直接整行转换。
Java code
myArray = new Double[lines.size()][6]; //既然一行是6个数据,就不要size()/6
了
for( i = 0; i myArray.length; i++){
String data[] = lines.get(i).split( \\s+ ); //分割
for( j = 0; j 6; j++){
if (j data.length) { //避免越界
if (data[j].matches( \\d+([.]\\d+)? )) {
myArray[i][j] = Double.valueOf();
} else {
System.out.printf( error double[%s]\n , data[j]);
myArray[i][j] = 0.0;
}
System.out.println(myArray[i][j]);
} else {
myArray[i][j] = 0.0; //补齐6个数据,缺省为0,LZ可以根据需求
而改变
}
}
}
本文档为【把string换成double】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。