這不是花哨的,但有時簡單直接很好。我已經爲你一步一步地解決了這個問題。
public static void main(String[] args) {
String parseMe = "/wps/wcm/connect/ae539d07-ce65-434e-9d9e-9e4ade8d4aa1/Extra+Talk+Time+Voucher_29_may.xls?MOD=AJPERES&CACHEID=ae539d07-ce65-434e-9d9e-9e4ade8d4aa1";
String[] questionMarkTokens = parseMe.split("\\?");
String beforeQuestionMark = questionMarkTokens[0];
String[] slashTokens = beforeQuestionMark.split("/");
String afterLastSlashBeforeQuestionMark = slashTokens[slashTokens.length - 1];
System.out.println(afterLastSlashBeforeQuestionMark);
}
\\?
正在照顧java中更神祕的問題之一。 Split需要一個正則表達式。正則表達式對於?
有特殊的含義。所以如果你想把它作爲一個字面問號,你必須用斜槓來逃避它。但是,當解析字符串時,它也使用反斜槓作爲轉義字符。所以你必須用另一個斜線來逃避斜線才能看到前一個斜線。
這就是說,米沙可能是對的。有很多方法可以打破解析。如果你可以使用罐裝做的話。仍然很高興學會如何自己做。
我發現,有多個正確答案here.cheers – Raj