14

我有一个快速的问题,我得到了以下代码

String chapterNumber = "14.2.1";

我怎样才能从我的“chapterNumber”中获得如下所示的字符串

String mainChapterNumber = "14";

编辑: 我想要 int/String 中的所有数字(对我来说没关系)直到第一点

4

8 回答 8

31

如果它只是您想要的输入字符串的第一部分,您应该这样做

String mainChapterNumber = chapterNumber.split("\\.", 2)[0];

split( )的第二个参数2表明我们应该只在第一次出现.;时进行拆分。.如果我们不提供第二个参数,它比在所有实例上拆分要快。


相关文件

于 2013-02-19T14:24:40.967 回答
9

只需使用以下内容:

String mainChapterNum = chapterNumber.substring(0, chapterNumber.indexOf("."));

这将返回当前章节编号的子字符串,从位于索引号 0 中的第一个字符开始,并在“。”第一次出现之前结束。

于 2013-02-19T14:30:40.393 回答
5
String chapterNumber = "1.2.1";
int index = chapterNumber.indexOf(".");
String mainChapterNumber = chapterNumber.substring(0,index);
于 2013-02-19T14:27:01.453 回答
2
String mainChapterNumber = chapterNumber.substring(0,chapterNumber.indexOf("."));
于 2013-02-19T14:30:29.620 回答
2

有多种方法可以做到这一点。我推荐的最简单的方法是使用子字符串和 indexOf: 像这样:

String result = chapterNumber.substring(0, chapterNumber.indexOf("."));

另一种方法是这样的:

String result = chapterNumber.split("\\.")[0];
于 2013-02-19T14:32:28.603 回答
1

由于我们没有任何证据证明您确实在尝试某些东西,因此我会提出建议而不是给您代码。

尝试使用字符串的索引。找到第一个点的索引,然后使用该substring方法将子字符串保持在原点和出现点之间。

于 2013-02-19T14:24:46.633 回答
0

尝试如下...

String chapterNumber = "1.2.1";
String[] getdt = chapterNumber.split("\\.");
String mainChapterNumber = getdt[0];
于 2013-02-19T14:27:42.857 回答
0

仅作记录,使用Guava 的 splitter 的另一种解决方案:

String mainChapterNumber = Iterables.get(Splitter.on('.').split(chapterNumber), 0);

这样做的好处是不使用正则表达式机制(它不是轻量级的,不要在循环中使用公认的解决方案)。

于 2013-02-19T14:44:01.053 回答