编写java程序,将随机字符串中的所有整数相加
我最近在一次采访中被问到这个问题(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
- 返回随机字符串中所有整数的总和。连续整数必须视为一个数字
- 如果输入字符串没有任何整数,则返回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让我来学习它!