拆分用逗号分隔的字符串并将值存储到 int 数组中
Posted
技术标签:
【中文标题】拆分用逗号分隔的字符串并将值存储到 int 数组中【英文标题】:Splitting a string separated by commas and storing the value into an int array 【发布时间】: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 检查我的答案。如果我理解正确的话,我想这就是你要找的东西。 【参考方案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以上是关于拆分用逗号分隔的字符串并将值存储到 int 数组中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用逗号分隔值拆分列并存储在 PySpark Dataframe 中的数组中?如下所示
Pyspark 数据帧拆分并将分隔列值填充到 N 索引数组中