【问题标题】:Split string into matrix array将字符串拆分为矩阵数组
【发布时间】:2011-07-18 22:56:14
【问题描述】:

我有一个字符串:

1,3,4,5,
1,4,5,0,
2,5,3,8,

我想存储在一个变量矩阵中 (int[][])。实现这一目标的最佳方法是什么?我应该使用String 类的方法吗?还是应该使用Regex

【问题讨论】:

    标签: java regex arrays string matrix


    【解决方案1】:

    首先(由String.split(..)split on newline,然后在, 上拆分每个结果数组的项目。然后使用Integer.parseInt(..)解析每一个

    【讨论】:

      【解决方案2】:
      String input = "1,3,4,5,\n1,4,5,0,\n2,5,3,8,";
      
      String[] str1 = input.split("\n");
      int[][] matrix = new int[str1.length][];
      for (int i = 0; i < matrix.length; i++) {
          String[] str2 = str1[i].split(",");
          matrix[i] = new int[str2.length];
          for (int j = 0; j < matrix[i].length; j++) {
              matrix[i][j] = Integer.parseInt(str2[j]);
          }
      }
      

      【讨论】:

      • StringTokenizer 实际上已被弃用:“建议任何寻求此功能的人改用 String 的 split 方法或 java.util.regex 包。”
      • 嗯,有趣的是,JavaDoc 现在实际上建议这样做,但没有意识到这一点。似乎最好尽可能避免使用正则表达式。在这种情况下,StringTokenizer 的速度也快了 3 倍(10k 次迭代),并且创建的对象更少,尽管可能无关紧要。
      • 按照建议将 StringTokenizer 替换为 String.split()
      猜你喜欢
      • 1970-01-01
      • 2016-04-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      相关资源
      最近更新 更多