在java中如何截断5分隔符后的字符串?

在java中如何截断5分隔符后的字符串?,java,Java,字符串s=aaa-bbb-ccc-ddd-ee-23-xyz 我需要将上面的字符串转换为aaa bbb ccc ddd ee,这意味着我的输出应该只打印第五个分隔符之前的单词。有什么办法可以解决这个问题吗?您可以使用正则表达式: String s = "aaa-bbb-ccc-ddd-ee-23-xyz"; Pattern p = Pattern.compile("^\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+"); Matcher matcher = p.matcher(s

字符串s=aaa-bbb-ccc-ddd-ee-23-xyz

我需要将上面的字符串转换为aaa bbb ccc ddd ee,这意味着我的输出应该只打印第五个分隔符之前的单词。有什么办法可以解决这个问题吗?

您可以使用正则表达式:

String s = "aaa-bbb-ccc-ddd-ee-23-xyz";
Pattern p = Pattern.compile("^\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+");
Matcher matcher = p.matcher(s);
matcher.find();
System.out.println(matcher.group(0));
输出为
aaa bbb ccc ddd ee


如果您不仅仅有字母,您可以将
\\w
替换为
[^\\-]
,它将捕获除删除器以外的所有字符。

使用如下模式和匹配器:

String s = "aaa-bbb-ccc-ddd-ee-23-xyz";
Pattern pattern = Pattern.compile("^((.+?-){4}[^-]+).*$");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
    s = matcher.group(1);
}
.*-搜索所有符号。?-懒惰的工作
(.*)-搜索以符号'-'结尾的字符序列

{4} -在结果字符串中“-”4次

[^-]+-搜索不带“-”的字符后
.*-请在插入后再输入一个字符


matcher.group(1)-返回第一个组。这是((.+?-){4}[^-]+)

Google搜索,您可以简单地遍历字符串并计算您遇到的分隔符数量。在计算了5个分隔符之后,创建一个从第0个索引到第5个分隔符索引的子字符串。这似乎是一个家庭作业,请注意详细说明并显示一些代码,让我们知道至少您尝试了一些东西。不要指望别人帮你做作业。