我有一个快速的问题,我得到了以下代码
String chapterNumber = "14.2.1";
我怎样才能从我的“chapterNumber”中获得如下所示的字符串
String mainChapterNumber = "14";
编辑: 我想要 int/String 中的所有数字(对我来说没关系)直到第一点
我有一个快速的问题,我得到了以下代码
String chapterNumber = "14.2.1";
我怎样才能从我的“chapterNumber”中获得如下所示的字符串
String mainChapterNumber = "14";
编辑: 我想要 int/String 中的所有数字(对我来说没关系)直到第一点
如果它只是您想要的输入字符串的第一部分,您应该这样做
String mainChapterNumber = chapterNumber.split("\\.", 2)[0];
split
( )的第二个参数2
表明我们应该只在第一次出现.
;时进行拆分。.
如果我们不提供第二个参数,它比在所有实例上拆分要快。
相关文件
只需使用以下内容:
String mainChapterNum = chapterNumber.substring(0, chapterNumber.indexOf("."));
这将返回当前章节编号的子字符串,从位于索引号 0 中的第一个字符开始,并在“。”第一次出现之前结束。
String chapterNumber = "1.2.1";
int index = chapterNumber.indexOf(".");
String mainChapterNumber = chapterNumber.substring(0,index);
String mainChapterNumber = chapterNumber.substring(0,chapterNumber.indexOf("."));
有多种方法可以做到这一点。我推荐的最简单的方法是使用子字符串和 indexOf: 像这样:
String result = chapterNumber.substring(0, chapterNumber.indexOf("."));
另一种方法是这样的:
String result = chapterNumber.split("\\.")[0];
由于我们没有任何证据证明您确实在尝试某些东西,因此我会提出建议而不是给您代码。
尝试使用字符串的索引。找到第一个点的索引,然后使用该substring
方法将子字符串保持在原点和出现点之间。
尝试如下...
String chapterNumber = "1.2.1";
String[] getdt = chapterNumber.split("\\.");
String mainChapterNumber = getdt[0];
仅作记录,使用Guava 的 splitter 的另一种解决方案:
String mainChapterNumber = Iterables.get(Splitter.on('.').split(chapterNumber), 0);
这样做的好处是不使用正则表达式机制(它不是轻量级的,不要在循环中使用公认的解决方案)。