A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhkqy 中级黑马   /  2013-12-10 19:34  /  906 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. *将字符串存储到二维的double数组中"1,2;3,4,5;6,7,8,9"
  2.         a,用分号把字符串切成字符串数组,遍历这个字符串数组
  3.         b,把每一个字符串元素再用,切
  4.         c,再遍历新切完这个数组
  5.         d,把这些单独元素通过数字字符串转成double数,存在double数组里
  6. */
  7. public class Test3 {

  8.         /**
  9.          * @param args
  10.          */
  11.         public static void main(String[] args) {
  12.                 // TODO Auto-generated method stub
  13.                 String str = "1,2;3,4,5;6,7,8,9";
  14.                 String []arr = str.split(";");
  15.                 String[][] arr2 = new String[arr.length][];
  16.                 for (int i = 0; i < arr.length; i++) {
  17.                         arr2[i] = arr[i].split(",");
  18.                 }
  19.                
  20.         /*        for (int i = 0; i < arr2.length; i++) {
  21.                         for (int j = 0; j < arr2[i].length; j++) {
  22.                                 System.out.print(arr2[i][j]+  "  ");
  23.                         }
  24.                         System.out.println();
  25.                 }*/
  26.                
  27.                 double [][]arr3 = new double[arr.length][];
  28.                 for (int i = 0; i < arr.length; i++) {
  29.                         for (int j = 0; j < arr2[i].length; j++) {
  30.                                 arr3[i][j] = Double.parseDouble(arr2[i][j]);

  31.                         }
  32.                 }
  33.         }

  34. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

2 个回复

倒序浏览
  1.         double[][] arr3 = new double[arr.length][];
  2.         for (int i = 0; i < arr.length; i++) {
  3.                 //缺少了这个定义arr3[i][j]就是不存在的
  4.                 arr3[i] = new double[arr2[i].length];
  5.             for (int j = 0; j < arr2[i].length; j++) {
  6.                     arr3[i][j] = Double.parseDouble(arr2[i][j]);
  7.                 System.out.print(arr3[i][j] + "\t");
  8.             }
  9.             System.out.println();
  10.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
第28行 并没有指定二维数组第二维的长度 double [][]arr3 = new double[arr.length][];
这里应该是不行的,虽然编译器不报错,但是运行的时候调用arr3[0][0]时就会有空指针出现
个人想法是因为第二维并未申请到内存  所以指向了null

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马