Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写java程序,将随机字符串中的所有整数相加_Java - Fatal编程技术网

编写java程序,将随机字符串中的所有整数相加

编写java程序,将随机字符串中的所有整数相加,java,Java,我最近在一次采访中被问到这个问题(Java编程) 返回随机字符串中所有整数的总和。连续整数必须视为一个数字 如果输入字符串没有任何整数,则返回0 您可以忽略小数、浮点数和其他非整数 @param str:输入字符串 鉴于以下输入,我们期望得到相应的输出: “-1a2b3c”=>4(-1+2+3) “123ab!45c”=>168(123+45) “abcdef”=>0(字符串中没有整数) “0123.4”=>127(0123+4) “dFD$#23+++12@#T1234;/,10”=>1

我最近在一次采访中被问到这个问题(Java编程)

  • 返回随机字符串中所有整数的总和。连续整数必须视为一个数字
  • 如果输入字符串没有任何整数,则返回0
  • 您可以忽略小数、浮点数和其他非整数
  • @param str:输入字符串
    • 鉴于以下输入,我们期望得到相应的输出:
  • “-1a2b3c”=>4(-1+2+3)
  • “123ab!45c”=>168(123+45)
  • “abcdef”=>0(字符串中没有整数)
  • “0123.4”=>127(0123+4)
  • “dFD$#23+++12@#T1234;/,10”=>1279(23+12+1234+10)
我也被允许使用任何内置函数 我写了这段代码,但是这似乎有点复杂。这段代码可以用其他方法完成吗

public int convertString(String str){
int num=0, currNo = 0;
Boolean isNegative = false;

for (int i=0 ; i<str.length(); i++){
Char t = str.charAt(i) ;

    if(t == ‘-‘){
       if(isNegative)
            num = num-currNo;
        else
            num = num + currNo;

       isNegative=true;
       currNo=0;
    }
    else if(((t-‘0’) <= 9 && (t-‘0’)>=0)){
        currNo = (currNo*10) + t;
    }
    else {

            if(isNegative)
            num = num-currNo;
        else
            num = num + currNo;

        currNo=0;
        isNegative=false;
    }
}


if(isNegative)
            num = num-currNo;
        else
            num = num + currNo;                         
isNegative=true;

return num;
}
public int-convertString(String-str){
int num=0,currNo=0;
布尔值为负=假;
对于(int i=0;i使用正则表达式:

Matcher m = Pattern.compile("-?\\d+").matcher(str);
long sum = 0;
while(m.find()) {
    sum += Integer.parseInt(m.group());
}

你似乎把你的代码放进了一个文字处理器,它把你的单引号改成了卷曲的unicode古怪。而且,你的缩进都搞砸了。我投票把这个问题作为离题题来结束,因为它是一个代码审查,属于codereview.stackexchange.com谢谢!它真的很有帮助。我在regex上没有做太多工作。现在是tim让我来学习它!