我希望得到一個輸出第一二從下面的字符串:爪哇 - 分割字符串與多個破折號
first-second-third
所以基本上我想要的是最後的衝刺之前得到的字符串( - ) 。 任何人都可以給我一個最好的解決方案嗎?
我希望得到一個輸出第一二從下面的字符串:爪哇 - 分割字符串與多個破折號
first-second-third
所以基本上我想要的是最後的衝刺之前得到的字符串( - ) 。 任何人都可以給我一個最好的解決方案嗎?
好,許多下來票,但我會添加一個解決方案
最有效的方式做到這一點是使用java.lang.String中#lastIndexOf,返回在此字符串中最後一次出現處的索引指定字符,反向搜索
的lastIndexOf將返回-1,如果儀表不存在
String str = "first-second-third";
int lastIndexOf = str.lastIndexOf('-');
System.out.println(lastIndexOf);
System.out.println(str.substring(0, lastIndexOf)); // 0 represent to cut from the beginning of the string
輸出:
第一二
String s = "first-second-third";
String newString = s.substring(0,s.lastIndexOf("-"));
點採取和回答固定。 –
只是一個另一種方式比lastIndex的方法等,使用正則表達式也可以做到,試試下面的代碼:
Pattern p = Pattern.compile("\\s*(.*)-.*");
Matcher m = p.matcher("first-second-third");
if (m.find())
System.out.println(m.group(1));
這與'lastIndexOf'不一樣。例如,如果你在輸入中有一個換行符,它將不起作用。 –
是的,你是對的,我只是給了正則表達式的選項... –
什麼你到目前爲止嘗試過嗎? – Luke
獲取lastIndefOf(「 - 」)並從中獲取從0到這個索引的子字符串它不正確? –
閱讀'String.split'的文檔 – Jens