我可以使用以下字符串:
String s = "chapterId=c_1§ionId=s_24666&isHL=1&cssFileName=haynes";
或
String s = "chapterId=c_1§ionId=s_24666";
我需要获取号码(示例中的“24666”)。
String res = s.substring(s.lastIndexOf("s_")+ 2)
这会返回直到字符串末尾的数字 +
个字符(第二个例子就可以了)。但我需要在数字结束后停下来。我怎样才能做到这一点。?谢谢
最佳答案
您可以使用regExp
String s = "chapterId=c_1§ionId=s_24666";
//OR
//String s = "chapterId=c_1§ionId=s_24666&isHL=1&cssFileName=haynes";
s=s.replaceAll(".*?s_(\\d+).*","$1");
System.out.println(s);
输出:
24666
地点,
.*?s_
表示s_
之前的任何内容(包括s_
)(\\d+)
表示用于组的一个或多个数字()
$1
表示第 1 组,即s_
后面的数字
注意:假设您的每个字符串都遵循特定格式,其中包括 s_
和 s_
后面的数字。
关于java - java从String中获取某个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26229857/