从大字符串中提取int

EGH*_*HDK 0 java

我正试图int从一个String.该String会经常来的:

"mombojumbomombojumbomombojumbomombojumbomombojumbomombojumbohello=1?fdjaslkd;fdsjaflkdjfdklsa;fjdklsa;djsfklsa;dfjklds;afj=124214fdsamf=352"
Run Code Online (Sandbox Code Playgroud)

所有这一切中唯一不变的是,我将"hello="跟随一个数字.有了这个,我无法弄清楚如何在数字后拉出数字"hello=".这是我到目前为止没有运气的尝试.

编辑:数字后面总是跟着"?"

String[] tokens = s.split("hello=");
for (String t : tokens)
    System.out.println(t);
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何从它的两侧隔离它int.

ajb*_*ajb 13

Pattern p = Pattern.compile("hello=(\\d+)");
Matcher m = p.matcher (s);
while (m.find())
    System.out.println(m.group(1));
Run Code Online (Sandbox Code Playgroud)

这将设置搜索s包含hello =后跟一个或多个数字(\\d+表示一个或多个数字)的任何位置.循环查找此模式的每次出现,然后每当找到匹配时,m.group(1)提取数字(因为这些数字在模式中分组).

  • 是的.请注意,您的答案现在不仅有助于OP,也有助于未来的读者. (2认同)
  • @EGHDK是的,它会的.(或者实际上是字符串"27".如果你想要实际的整数,可以使用[Integer.valueOf](http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#valueOf (java.lang.String))). (2认同)