畢竟字符我有一個快速的問題, 我得到了下面的代碼的Java:刪除點
String chapterNumber = "14.2.1";
我如何能實現獲得類似下面的我的「chapterNumber」的
String mainChapterNumber = "14";
一個String
編輯: 我想在所有的數字一個int /字符串(並不重要,我)到第一點
畢竟字符我有一個快速的問題, 我得到了下面的代碼的Java:刪除點
String chapterNumber = "14.2.1";
我如何能實現獲得類似下面的我的「chapterNumber」的
String mainChapterNumber = "14";
一個String
編輯: 我想在所有的數字一個int /字符串(並不重要,我)到第一點
如果只有你想輸入字符串的第一部分,你應該做的
String mainChapterNumber = chapterNumber.split("\\.", 2)[0];
的split
(2
)的第二個參數表明,我們應該只拆分對.
的第一發生;這比在.
的所有實例上分割要快,如果我們不提供第二個參數,會發生什麼情況。
相關文檔
謝謝,正是我所需要的 – 2013-02-19 14:29:14
只是對使用分割方法時的內存分配方式感到好奇而不是子串。當我們解析大字符串時,哪一個會是最好的? – Slowcoder 2013-02-19 16:04:08
謝謝!,正是我在找的! – TharakaNirmana 2013-07-10 03:27:00
因爲我們沒有的你實際上是試圖東西任何證據,我會提出一個建議,而不是給你的代碼。
嘗試玩你的字符串的索引。找到第一個點的索引,然後使用substring
方法將子串保留在原點和發生點之間。
任何關心評論downvote?是否因爲我避免了勺子餵食顯示沒有努力跡象的OP?我想是的,因爲後來給出明確的完整代碼的答案是upvoted。 – Gamb 2013-02-19 15:04:54
String chapterNumber = "1.2.1";
int index = chapterNumber.indexOf(".");
String mainChapterNumber = chapterNumber.substring(0,index);
Downvoter請評論。 – 2013-02-19 15:04:21
String mainChapterNumber = chapterNumber.substring(0,chapterNumber.indexOf("."));
只需使用以下命令:
String mainChapterNum = chapterNumber.substring(0, chapterNumber.indexOf("."));
這將返回當前的章節號碼從第一個字符開始的子串它放置在索引號0中,並在「。」的第一次出現之前結束。
這實際上也是一個有效的解決方案,它爲我工作,謝謝。 – 2016-04-20 10:52:08
有多種方法可以做到這一點。 最簡單的一個我會使用一個子建議,和的indexOf: 像這樣:
String result = chapterNumber.substring(0, chapterNumber.indexOf("."));
做的另一種方式,它會是這樣:
String result = chapterNumber.split("\\.")[0];
爲了記錄,另一種解決方案使用Guava's splitter:
String mainChapterNumber = Iterables.get(Splitter.on('.').split(chapterNumber), 0);
這具有不使用正則表達式機械的優點(這是不輕便,不要在循環中使用可接受的解決方案)。
你嘗試過什麼嗎? – 2013-02-19 14:22:43
'indexOf()'和'substring()'是你的朋友。 – jlordo 2013-02-19 14:23:38
我試過......我在論壇上找到了:'chapterNumber..replaceAll(「//.*$」,「」);'但那不起作用 – 2013-02-19 14:24:22