2 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用正則表達(dá)式來(lái)提取路徑:
String str = "ListnewPersonList = new PersonUtility().getAllPerson (\"C://data//person.txt\")";
Matcher m = Pattern.compile("\\w://[^\"]+").matcher(str);
while(m.find()) {
System.out.println(m.group());
}
輸出:
C://data//person.txt

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
ListNewPersonList 聽(tīng)起來(lái)像是您正在處理一個(gè)列表而不是一個(gè)大字符串?
一般來(lái)說(shuō),類名應(yīng)以大寫(xiě)字母開(kāi)頭,變量名應(yīng)以小寫(xiě)字母開(kāi)頭。
但我們假設(shè)你是正確的,并且我們?cè)谄渌胤铰暶髁?/p>
String ListNewPersonList ...
好的,所以你有一個(gè)字符串。Java 有大量的方法固定在 String 上來(lái)操作它 - 甚至包括正則表達(dá)式(讓 Perl 發(fā)揮作用的東西)。
您可能正在尋找的是這樣的:
int x = ListNewPersonList.indexOf("C://");
例如,查找您不會(huì)合理期望在文本中其他任何地方找到的子字符串。
那么你所需要的只是一個(gè)結(jié)束索引,你可以這樣做:
String theFileNameToLookFor = ListNewPersonList.substring(x, y);
或者可能是 y-1,具體取決于。
對(duì)字符串邊界要非常小心,因?yàn)榈讓訉?shí)現(xiàn)默認(rèn)將它們視為數(shù)組,并且您不想嘗試對(duì)實(shí)際上不存在的數(shù)組部分進(jìn)行索引。如果你這樣做,Java 不會(huì)喜歡它。
但這是問(wèn)題所在 - 除非您確定要查找的特定文件結(jié)尾(在本例中為“.txt”),否則您會(huì)被塞滿,因?yàn)槟鸁o(wú)法確定目錄名稱的長(zhǎng)度。
從長(zhǎng)篇來(lái)看,答案可能如下所示:
String answer = ListNewPersonList.substring( ListNewPersonList.indexOf("C://"), ListNewPersonList.indexOf(".txt"));
當(dāng)然,如果您碰巧有一個(gè) .txt 出現(xiàn)在第一個(gè) C:// 之前,那是非常不安全的
這就是人生。
添加回答
舉報(bào)