如何从Java中的分隔字符串中提取整数

时间:2018-11-09 03:06:30

标签: java string sum

字符串示例

131-5923-213
1421-41-4-12-4
1-1

我如何将整数提取到数组中或找到这些整数的和?到目前为止,我的代码

int hyphenCount = socialNum.length()-socialNum.replaceAll("-", "").length();

ArrayList<Integer> sum = new ArrayList<Integer>();
for(int i = 0; i < hyphenCount; i++)
{
   //my brain is too small             
}

我想做的是创建一个如下所示的函数

public void extractSum(String s)
{
  int outputSum;

  //stuff

  return outputSum;
} 

2 个答案:

答案 0 :(得分:0)

使用流,您可以执行以下操作:

int sum = Arrays.stream(str.replace("-",  "").split("")).mapToInt(Integer::valueOf).sum();

将替换连字符,然后分割每个字符,解析整数,然后返回总和

输出: (对于String "131-5923-213"

30

如果您想要131 + 5923 + 213的总和,则可以执行以下操作:

int sum = Arrays.stream(str.split("-")).mapToInt(Integer::valueOf).sum();

将连字符拆分,解析整数并返回总和

答案 1 :(得分:0)

除了使用流的@GBlodgett's答案之外,您还可以简单地运行for循环来计算总和。

String string = "131-5923-213";

String[] num = string.split("-");  //<----num[0] = "131" ,num[1]="5923",num[2] = "213"

int hyphenCount = num.length;  //<----it would give you 3 as length

int mySum = 0;   //initialize the sum as 0

for(int i = 0; i < hyphenCount; i++)
{
     mySum+= Integer.parseInt(num[i]); //<---convert the string to an int

}
  

输出:6267