这个题目好像不是我该记录的霍,哈哈哈,因为实在是太基础了,应该说是初学者的小练习,今天有朋友请教我 所以我就写出来 记录一下 希望可以帮助到更多学习编程的小伙伴,题目是这样的:
将一个字符串string中的数字提取出来转化为Integer
例如1:输入12a,输出12
例如2:输入1a2b3c,输出123
思路:将字符串转为char类型的数组,用正则表达式去判断每个下标对应的字符是不是数字 如果是数字就拼接,最后转化返回。
代码:
/**
* @author: shenwang
* Date: 2021/12/3
*/
public class StringUtils {
/**
* 判断是不是数字
*/
static Pattern isNumberPattern = Pattern.compile("\\d+");
/**
* 截取字符串中的数字 并切转化为Integer类型
* @param content
* @return
*/
public static Integer getNumbers(String content) {
if (content==null){
return -1;
}
String number="";
char[] chars = content.toCharArray();
for (int i=0;i<chars.length;i++){
Matcher matcher = isNumberPattern.matcher(String.valueOf(chars[i]));
if (matcher.find()){
number+=matcher.group(0);
}
}
return Integer.valueOf(number);
}
}
测试:
结果:
怎么样学废了吗,嘿嘿