有没有办法我只能解析一部分字符串?

时间:2019-01-07 16:25:28

标签: java

说我有这个代码

String age = "My name is John and I am 18 years old";

是否有一种方法只能将“ 18”解析为整数并将其余部分保留为字符串? 谢谢

5 个答案:

答案 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);