Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取字符串中的特定数字_Java_Parsing - Fatal编程技术网

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+)