0

intからを取得しようとしていStringます。はString常に次のようになります。

"mombojumbomombojumbomombojumbomombojumbomombojumbomombojumbohello=1?fdjaslkd;fdsjaflkdjfdklsa;fjdklsa;djsfklsa;dfjklds;afj=124214fdsamf=352"

このすべての唯一の定数は"hello="、数字が続くということです。それだけでは、 の後の数字を引き出す方法がわかりません"hello="。これは私がこれまで運がなかったものです。

編集: 番号の後には常に「?」が続きます。

String[] tokens = s.split("hello=");
for (String t : tokens)
    System.out.println(t);

の両側から分離する方法がわかりませんint

4

5 に答える 5

2

これには正規表現を使用する必要があります。

    String str = "mombojumbomombojumbomombojumbomombojumbomombojumbomombojumbohello=1fdjaslkd;fdsjaflkdjfdklsa;fjdklsa;djsfklsa;dfjklds;afj=124214fdsamf=352";
    Pattern p = Pattern.compile("hello=(\\d+)");
    Matcher m = p.matcher(str);
    if (m.find()) {
        System.out.println(m.group(1)); // prints 1
    }
于 2013-07-25T21:51:18.250 に答える
0

これは、別の非正規表現パフォーマンス アプローチです。便利なメソッドにラップ

ヘルパー メソッド

 public static Integer getIntegerForKey(String key, String s)
 { 
    int startIndex = s.indexOf(key);

    if (startIndex == -1)
        return null;

    startIndex += key.length();

    int endIndex = startIndex;

    int len = s.length(); 

    while(endIndex < len && Character.isDigit(s.charAt(endIndex))) {
        ++endIndex;
    }

    if (endIndex > startIndex)
        return new Integer(s.substring(startIndex, endIndex));

    return null;
 }

使用法

Integer result = getIntegerForKey("hello=", yourInputString);

if (result != null)
    System.out.println(result);
else
    System.out.println("Key-integer pair not found.");
于 2013-07-25T22:06:45.133 に答える