Java:删除点后的所有字符
我有一个简短的问题, 我得到了以下代码Java:删除点后的所有字符,java,Java,我有一个简短的问题, 我得到了以下代码 String chapterNumber = "14.2.1"; 如何从我的“chapterNumber”中获得如下字符串 编辑: 我想要一个int/String中的所有数字(对我来说无关紧要)直到第一个点如果它只是您想要的输入字符串的第一部分,您应该这样做 String mainChapterNumber = chapterNumber.split("\\.", 2)[0]; split(2)的第二个参数表示我们只应在第一次出现时进行拆分;它比在的所
String chapterNumber = "14.2.1";
如何从我的“chapterNumber”中获得如下字符串
编辑:
我想要一个int/String中的所有数字(对我来说无关紧要)直到第一个点如果它只是您想要的输入字符串的第一部分,您应该这样做
String mainChapterNumber = chapterNumber.split("\\.", 2)[0];
split
(2
)的第二个参数表示我们只应在第一次出现
时进行拆分;它比在
的所有实例上拆分要快,如果不提供第二个参数,就会发生这种情况
相关文档
- 由于我们没有任何证据证明您确实在尝试某些东西,因此我将提出建议,而不是给出代码
尝试使用字符串的索引。找到第一个点的索引,然后使用
子字符串
方法将子字符串保持在原点和发生点之间。尝试如下操作
String chapterNumber = "1.2.1";
int index = chapterNumber.indexOf(".");
String mainChapterNumber = chapterNumber.substring(0,index);
String chapterNumber = "1.2.1";
String[] getdt = chapterNumber.split("\\.");
String mainChapterNumber = getdt[0];
只需使用以下命令:
String mainChapterNum = chapterNumber.substring(0, chapterNumber.indexOf("."));
这将返回当前章节号的子字符串,从索引号0中的第一个字符开始,在第一次出现“.”之前结束有多种方法。 我推荐的最简单的方法是使用子字符串和indexOf: 像这样:
String result = chapterNumber.substring(0, chapterNumber.indexOf("."));
另一种方法是:
String result = chapterNumber.split("\\.")[0];
为了记录在案,另一个解决方案使用:
这样做的好处是不使用正则表达式机制(它不是轻量级的,不要在循环中使用公认的解决方案)。你尝试过什么吗?
indexOf()
和substring()
是你的朋友。我尝试过在论坛上找到的东西,比如:chapterNumber..replaceAll(//.$,”)代码>但那没有work@JamesCarter. 这里真的不需要正则表达式。从一开始的“1”实际上我需要将所有内容拆分为一个新字符串,直到第一个点谢谢,这正是我需要的。只是好奇在这种情况下,当使用拆分方法而不是子字符串时,内存分配会如何。当我们分析大字符串时,哪一个是最好的?有人愿意评论下一票吗?是因为我避免用勺子喂一个没有任何努力迹象的OP吗?我想是这样的,因为后来给出明确完整代码的答案是向上投票的。事实上,这也是一个有效的解决方案,它对我有效,谢谢。
String result = chapterNumber.substring(0, chapterNumber.indexOf("."));
String result = chapterNumber.split("\\.")[0];
String mainChapterNumber = Iterables.get(Splitter.on('.').split(chapterNumber), 0);