说我有这个代码
String age = "My name is John and I am 18 years old";
是否有一种方法只能将“ 18”解析为整数并将其余部分保留为字符串? 谢谢
答案 0 :(得分:1)
String age = "My name is John and I am 18 years old";
Integer.parseInt(age.replaceAll("\\D", ""));
这还将删除数字之间的非数字,因此“ 2k4t1
”变为241
。
如果您需要确认字符串由一个数字序列(至少一个)组成,并且可能跟在字母后面,请使用以下命令:
age.matches("\\d+[A-Za-z]?")
答案 1 :(得分:0)
最优雅的方法是使用扫描仪提取给定字符串中首次出现的整数:
int res = new Scanner("My name is John and I am 18 years old").useDelimiter("\\D+").nextInt();
在调用nextInt()以确保它不会引发异常之前,请记住先调用hasNextInt()方法
答案 2 :(得分:0)
String age = "Mon nom est John et j'ai 18 ans";
age = age.replaceAll("\\D+","");
System.out.print(Integer.parseInt(age));
答案 3 :(得分:0)
@Session["Things"][1,1]
答案 4 :(得分:0)
是的
String s = "";
for (int i = 0; i<age.length; i++){
if (Character.isLetter(age.charAt(i)
s+=age.charAt(i);
}
int number = Integer.parseInt(s);