2

文字列から整数値を取得したいのですが。以下は私の例です。

String strScore = "Your score is 10. Probability in the next 2 years is 40%";

しかし、私は10のスコアを取得したいだけです。どうすればこれを行うことができますか?

更新しました:

String firstNumber = strScore.replaceFirst(".*?(\\d+).*", "$1");

bfLog.createEntry( firstNumber );

これをsqliteデータベースに保存します。

4

3 に答える 3

10

String正規表現メソッドの1つを使用して、キャプチャされたグループreplaceの最初の桁をキャプチャできます。

String firstNumber = strScore.replaceFirst(".*?(\\d+).*", "$1");
  • .*?最初の非数字を消費します(貪欲ではありません)
  • (\\d+)グループで利用可能な1つ以上の数字を取得してください!
  • .*他のすべて(貪欲)。
于 2013-03-10T17:50:07.883 に答える
3

これは、文字列内で他に変更できるものがあるかどうかによって異なります。

番号以外はいつも同じなら、

int score = Integer.parseInt(strScore.substring(14,16))

数字「10」は文字列のインデックス14と15にあるためです。文字列で他のものが変更された場合は、正規表現を使用する必要があります。

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

于 2013-03-10T17:49:59.567 に答える
1

あなたはこれを試すことができます:

String strScore = "Your score is 10. Probability in the next 2 years is 40%";
String intIndex = strScore.valueOf(10);
String intIndex = 10 // Result
于 2015-09-18T10:40:45.747 に答える