Java 如何在字符串中查找int值
我有一个字符串,例如,Java 如何在字符串中查找int值,java,string,parsing,int,parseint,Java,String,Parsing,Int,Parseint,我有一个字符串,例如,“ksl13m4n”,我想删除所有非数字字符以获取int 134 Integer.parseInt(s)显然不起作用,但不确定如何处理它。您可以先使用正则表达式: String s = "ksl13 m4n"; String clean = s.replaceAll("\\D+",""); //remove non-digits 然后可以使用Integer.parseInt: int i = Integer.parseInt(clean); 如果你不想使用正则表达式,你
“ksl13
m4n”
,我想删除所有非数字字符以获取int 134
Integer.parseInt(s)
显然不起作用,但不确定如何处理它。您可以先使用正则表达式:
String s = "ksl13 m4n";
String clean = s.replaceAll("\\D+",""); //remove non-digits
然后可以使用Integer.parseInt
:
int i = Integer.parseInt(clean);
如果你不想使用正则表达式,你可以这样做:
private String buildNumber(String str) {
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if(Character.isDigit(ch))
strBuilder.append(ch);
}
return strBuilder.toString();
}
private String buildNumber(String str){
StringBuilder strBuilder=新StringBuilder();
对于(int i=0;i
然后可以使用将其转换为int
有关更多信息,请参阅和。String str=“ksl13 m4n”字符串strArray[]=str.split(“\D+”);将为您提供整数值数组使用类
模式
或字符串#replaceAll(字符串,字符串)
。@FraserPrice\\D+
的可能重复项将删除除以下项以外的任何内容:0123456789
。真的\\D+
相当于[a-z | a-z]
,意味着替换除小数以外的所有字符?@Azad\\D+
相当于[^0-9]+
只是一个旁注,字符.isDigit
比regex中的\D
宽一点,因为它可以匹配国际数字字符()。事实上。如果这很重要,他可以使用'0'轻松检查0-9
数字&&