eye*_*ash 5 java string parsing
假设我有一个以数字开头的字符串。如何获取/提取所有第一个数字并将它们转换为整数?不想要字符串上的所有数字,我想要从第一个到任何其他字母或字符之前的最后一个的数字。
例如:
String s= "5634-abofrda/+l8908"; // 5634
String str="78695t08675jgk"; // 78695
Run Code Online (Sandbox Code Playgroud)
我如何获得数字 5634?我正在寻找一个通用的解决方案,而不是针对所描述的案例。
小智 8
此方法可用于在找到另一个字符之前返回一个数字
static int getNumbers(String s) {
String[] n = s.split(""); //array of strings
StringBuffer f = new StringBuffer(); // buffer to store numbers
for (int i = 0; i < n.length; i++) {
if((n[i].matches("[0-9]+"))) {// validating numbers
f.append(n[i]); //appending
}else {
//parsing to int and returning value
return Integer.parseInt(f.toString());
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用法:
getNumbers(s);
getNumbers(str);
Run Code Online (Sandbox Code Playgroud)
输出:
5634
78695
Run Code Online (Sandbox Code Playgroud)
使用正则表达式。匹配和分组数字后跟任何内容,并用匹配的组替换所有内容。喜欢,
System.out.println(s.replaceAll("(\\d+).+", "$1"));
Run Code Online (Sandbox Code Playgroud)
印刷品(根据要求)
5634
Run Code Online (Sandbox Code Playgroud)