为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

把string换成double

2018-04-15 5页 doc 17KB 8阅读

用户头像

is_792768

暂无简介

举报
把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 如何把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,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索