我有一个简单的问题, 我得到了以下代码
String chapterNumber = "14.2.1";
如何从我的“chapterNumber”
中获得类似以下字符串的字符串String mainChapterNumber = "14";
编辑: 我想要int / String中的所有数字(对我来说无关紧要)直到第一点
答案 0 :(得分:26)
如果它只是你想要的输入字符串的第一部分,你应该
String mainChapterNumber = chapterNumber.split("\\.", 2)[0];
split
(2
)的第二个参数表示我们应该只分割.
的第一个次出现;它比在.
的所有实例上拆分更快,如果我们不提供第二个参数会发生这种情况。
相关文档
答案 1 :(得分:9)
只需使用以下内容:
String mainChapterNum = chapterNumber.substring(0, chapterNumber.indexOf("."));
这将返回当前章节编号的子字符串,该字符串从第一个字符开始,该字符位于索引编号0中并在第一个外观“。”之前结束。
答案 2 :(得分:5)
String chapterNumber = "1.2.1";
int index = chapterNumber.indexOf(".");
String mainChapterNumber = chapterNumber.substring(0,index);
答案 3 :(得分:1)
由于我们没有任何证据证明您确实在尝试某些事情,我会提出建议,而不是给您代码。
尝试使用字符串的索引。找到第一个点的索引,然后使用substring
方法将子串保持在原点和出现之间。
答案 4 :(得分:1)
有多种方法可以做到这一点。 我建议最简单的方法是使用子字符串和indexOf: 像这样:
String result = chapterNumber.substring(0, chapterNumber.indexOf("."));
另一种方法是:
String result = chapterNumber.split("\\.")[0];
答案 5 :(得分:0)
尝试如下...
String chapterNumber = "1.2.1";
String[] getdt = chapterNumber.split("\\.");
String mainChapterNumber = getdt[0];
答案 6 :(得分:0)
String mainChapterNumber = chapterNumber.substring(0,chapterNumber.indexOf("."));
答案 7 :(得分:0)
仅供记录,使用Guava's splitter的其他解决方案:
String mainChapterNumber = Iterables.get(Splitter.on('.').split(chapterNumber), 0);
这样做的好处是不使用正则表达式机制(不是轻量级的,不要在循环中使用接受的解决方案)。