1 回答

TA貢獻1859條經驗 獲得超6個贊
我不知道您的所有要求,但請嘗試使用 Regexp:
@Test
public void test()
{
String string = "13:46 Kill: 6 2 6: Zeh killed Isgalamido by MOD_ROCKET";
String regexp = "\\d+:\\d+ .*?([A-Za-z0-9]+) killed ([A-Za-z0-9]+).*?";
String player1 = null;
String player2 = null;
Pattern p = Pattern.compile(regexp);
Matcher m = p.matcher(string);
if (m.find())
{
player1 = m.group(1);
player2 = m.group(2);
}
assertEquals("Zeh", player1);
assertEquals("Isgalamido", player2);
}
說明:\d+ - 一個數字,一次或多次
.* - 任意字符,任意次數。這 '?' 表示“非貪婪”,因此匹配以下表達式的字符不會被覆蓋
([A-Za-z0-9]+) - '[]' 內的字符范圍,一次或多次,被捕獲
一旦我確認這是你的意思,我會再次編輯我的答案
添加回答
舉報