私は以下の文字列を持っています。
ABC Results for draw no 2888
ここから2888
を抽出したいと思います。つまり、上記の文字列でno
の後の文字を抽出する必要があります。
Word no
の後の番号を常に抽出します。文字列には、他のno
文字の組み合わせが含まれていません。文字列には他の数字が含まれている可能性があり、それらを抽出する必要はありません。常に数字の前にスペースがあり、抽出したい数字は常に文字列の最後にあります。
どうすればこれを達成できますか?
yourString.substring(yourString.indexOf("no") + 3 , yourString.length());
これを試してみてください
String example = "ABC Results for draw no 2888";
System.out.println(example.substring(example.lastIndexOf(" ") + 1));
あなたは常に、設定と修正が簡単なものを目指したいと思っています。そのため、他の検索よりも 正規表現パターン マッチングを選択することを常にお勧めします。
例、あなたの例のためにこれを考慮してください:
import Java.util.regex.Matcher;
import Java.util.regex.Pattern;
public class Play {
public static void main(String args[]) {
Pattern p = Pattern.compile("^(.*) Results for draw no (\\d+)$");
Matcher m = p.matcher("ABC Results for draw no 2888");
m.find();
String groupName = m.group(1);
String drawNumber = m.group(2);
System.out.println("Group: "+groupName);
System.out.println("Draw #: "+drawNumber);
}
}
提供されたパターンから、有用な部分を簡単に識別できます。問題を特定するのに役立ちます。また、パターン内の便利な追加部分を特定できます(グループ名を追加しました)。
もう1つの明らかな利点は、このパターンを外部から構成ファイルに簡単に保存できることです。