Java 获取字符串中的特定数字
我试图解析文本并从文本中获取值,如:Java 获取字符串中的特定数字,java,parsing,Java,Parsing,我试图解析文本并从文本中获取值,如: Page 1 of 6 我正在考虑使用java提取结束号。 所以我在这种情况下的输出应该是6 有没有我可以使用的java字符串函数?还是其他方式 类似这样: String s = "Page 1 of 6"; String[] values = s.split(" "); System.out.println(Integer.parseInt(values[values.length - 1])); 您可以为此使用正则表达式,这比使用例如String.s
Page 1 of 6
我正在考虑使用java提取结束号。
所以我在这种情况下的输出应该是6
有没有我可以使用的java字符串函数?还是其他方式 类似这样:
String s = "Page 1 of 6";
String[] values = s.split(" ");
System.out.println(Integer.parseInt(values[values.length - 1]));
您可以为此使用正则表达式,这比使用例如String.split更安全: 产出:
parsed page = 1 and pages = 6.
我认为这是基本的字符串操作。你能做的就是
String pageNumberString = "Page 1 of 6";
int ofIndex = pageNumberString.indexOf("of");
int pageNumber = Integer.parseInt(pageNumberString.substring(ofIndex + 2));
我认为这应该行得通 只要数字的格式保持相似,我就使用正则表达式
Pattern p = Pattern.compile("(\\d+)$");
Matcher m = p.match("Page 1 of 6");
System.out.println(Integer.parseInt(m.group(1)));
例如,这一个将匹配由任何非数字字符分隔的两个数字的任何字符串,并捕获这两个数字
(\d+)[^\d]+(\d+)
注意:这将匹配一些奇怪的东西,如Page1of2。它也不会匹配负数。并不是说你希望得到一个负页码。文本总是一样的吗?你试过什么吗?是的,我试过了,但没有得到值。现在用丹说的是。我用的是Split谢谢你,这很有效。我没有使用Parserint:-我正在结束问题
(\d+)[^\d]+(\d+)