[英]How can I find int values within a string
我有一个字符串,例如"ksl13<br>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);
i
将是134
。
如果您不想使用正则表达式,可以执行以下操作:
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();
}
然后您可以使用Integer#parseInt将其转换为int
。
有关其他信息,请参阅StringBuilder和Character 。
字符串 str = "ksl13 m4n";
字符串 strArray[] = str.split("\D+"); 会给你整数值数组
input output
abcd1234 1234
abcd 0
123abcd456 123
仅用于返回字符串中可用的第一个数字序列
public static int intValueOfString( String strVal) {
char[] charArry= strVal.toCharArray();
List<Character> myDigitcharList = new ArrayList();
int isDegitsAvailable = 0;
for (int i = 0 ; i < charArry.length ; i++ ) {
if (Character.isDigit(strVal.charAt(i))) {
myDigitcharList.add(charArry[i]);
isDegitsAvailable++;
} else {
if (isDegitsAvailable > 0) {
break;
}
}
}
StringBuilder sb = new StringBuilder("");
if (myDigitcharList.size() > 0) {
for (Character x : myDigitcharList) {
sb.append(x);
}
return Integer.valueOf(sb.toString());
}
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.