任何人都可以让我知道如何从中删除重复的值
String s="Bangalore-Chennai-NewYork-Bangalore-Chennai";
和输出应该像
String s="Bangalore-Chennai-NewYork-";
使用Java
任何帮助,将不胜感激。
只需一行即可:
public String deDup(String s) {
return new LinkedHashSet<String>(Arrays.asList(s.split("-"))).toString().replaceAll("(^\\[|\\]$)", "").replace(", ", "-");
}
public static void main(String[] args) {
System.out.println(deDup("Bangalore-Chennai-NewYork-Bangalore-Chennai"));
}
输出:
Bangalore-Chennai-NewYork
请注意,订单已保留:)
关键点是:
split("-")
给我们不同的值作为数组Arrays.asList()
把数组变成一个列表LinkedHashSet
保留唯一性 和 插入顺序-它完成为我们提供唯一值的所有工作,这些值通过构造函数传递toString()
列表是[element1, element2, ...]
replace
命令从toString()
此解决方案要求这些值不包含字符序列", "
,这是此类简洁代码的合理要求。
当然是1行:
public String deDup(String s) {
return Arrays.stream(s.split("-")).distinct().collect(Collectors.joining("-"));
}
如果您不关心保留顺序(即可以删除第 一次 出现的重复项):
public String deDup(String s) {
return s.replaceAll("(\\b\\w+\\b)-(?=.*\\b\\1\\b)", "");
}
问题内容: 我试图遍历一个字符串,以删除重复的字符。 例如字符串应该成为 和字符串应该成为 这是我到目前为止的内容: 做这个的最好方式是什么? 问题答案: 将字符串转换为char数组,并将其存储在中。这样可以保留你的订购,并删除重复的商品。就像是:
字符串userKeyword来自用户键盘输入-我已经尝试编写一个方法来返回这个删除重复字符的字符串。 通过在while循环中移动新字符赋值,我现在得到的输出与PLAIN_ALPHA相同,而不是userKeyword,并省略了重复项。我做错了什么?
我被要求编写一个程序,从字符串中删除重复的字母**注意:大小写字母被认为是重复的。我编写了代码,它适用于所有没有空格键的输入,当一个字符串带有空格时,它会显示错误。我只需要使用循环和数组,没有额外的函数或哈希,这是我的代码,几乎可以工作:
问题内容: 我有像这样的字符串“ aaaabbbccccaaddddcfggghhhh”,我想删除重复的字符,得到像这样的字符串“ abcadcfgh”。 一个简单的实现是: 使用正则表达式是否可能有更好的实现? 问题答案: 你可以这样做: 正则表达式使用反向引用和捕获组。 正常的正则表达式是,但是您必须在Java中使用另一个反斜杠来使反斜杠转义。 如果您想要重复的字符数: 演示版
我需要编写一个静态方法,该方法将作为参数,并返回一个新的。例如,如果我将“Maaaakkee”作为输入,它将返回“make”。我已经尝试了下面的代码,但它似乎没有显示最后一个字符。下面是我的代码:
问题内容: 我正在寻找最快的方法来删除用逗号分隔的字符串中的重复值。 所以我的弦看起来像这样; 我可以将字符串分解为值然后进行比较,但是我认为这样做会很慢。那么preg_replace()会更快吗?使用此功能有人吗? 问题答案: 最短的代码是: 如果它是最快的…我不知道,那么它可能快于显式循环。 参考:,,