【问题标题】:Splitting a string separated by commas and storing the value into an int array拆分用逗号分隔的字符串并将值存储到 int 数组中
【发布时间】:2016-12-18 21:55:05
【问题描述】:

我有一个字符串,我想用逗号分隔(简单的过程):

String numbers = "1,2,3";

但是,然后我想将拆分字符串的每个元素转换为一个 int,该 int 可以存储在一个用逗号分隔的 int 数组中:

int[][] array = new int [0][];
array[0] = new int[] {1,2,3};

我怎样才能做到这一点?

【问题讨论】:

  • 您不需要二维数组。拆分字符串并将其解析为 Integer。
  • 我可以在使用 Integer.parseint() 将字符串拆分为整数后对其进行解析,但是我想知道如何创建逗号分隔的整数?
  • @Yehudah 检查我的答案。如果我理解正确的话,我想这就是你要找的东西。

标签: java arrays string split int


【解决方案1】:

二维数组是不必要的。您需要做的就是使用split 方法将逗号从字符串中拼接出来。然后将结果数组中的每个元素转换为 int。它应该是这样的,

String numbers = "1,2,3";
String[] arr = numbers.split(",");
int[] numArr = new int[arr.length];
for(int i = 0; i < numArr.length; i++){
    numArr[i] = Integer.parseInt(arr[i]);
}

【讨论】:

    【解决方案2】:
    String[] strArr = numbers.split(",");
    int[][] array = new int[1][];
    for(int i = 0; i < strArr.length; i++) {
        array[0][i] = Integer.parseInt(strArr[i]);
    }
    

    【讨论】:

      【解决方案3】:

      你不需要二维数组,你可以使用简单的数组。存储这些数据就足够了。只需将其拆分为“,”,然后遍历该数组,解析所有 int 并将解析后的值添加到新数组中。

        String numbers = "1,2,3,4,5";
              String[] splitedArr= numbers.split(",");
              int[] arr = new int[splitedArr.length];
              for(int i = 0; i < splitedArr.length; i++) {
                  arr[i] = Integer.parseInt(splitedArr[i]);
              }
             System.out.println(Arrays.toString(arr)); 
      

      【讨论】:

        【解决方案4】:
            String s = "1,2,3";
        
            StringTokenizer st = new StringTokenizer(s,",");
            int[][] array = new int [0][];
            int i = 0;
            while(st.hasMoreElements()) {
                int n = Integer.parseInt((String) st.nextElement());
                array[0][i] = n;
                i++;
            }
        

        这是 String.split() 的两倍

        【讨论】:

          【解决方案5】:
          array[0] = Arrays.stream(numbers.split(","))
                  .mapToInt(Integer::parseInt)
                  .toArray();
          

          【讨论】:

          • 这需要 jdk 8
          • 虽然此代码可以回答问题,但提供有关 如何 和/或 为什么 解决问题的附加上下文将改善答案的长期价值。 - From Review
          猜你喜欢
          • 1970-01-01
          • 2021-02-24
          • 1970-01-01
          • 1970-01-01
          • 2015-03-07
          • 2018-12-21
          • 2011-05-30
          • 1970-01-01
          相关资源
          最近更新 更多