在java中删除字符串中的重复值
有人能告诉我如何从中删除重复值吗在java中删除字符串中的重复值,java,string,duplicates,duplicate-removal,Java,String,Duplicates,Duplicate Removal,有人能告诉我如何从中删除重复值吗 String s="Bangalore-Chennai-NewYork-Bangalore-Chennai"; 输出应该是这样的 String s="Bangalore-Chennai-NewYork-"; 使用Java 如有任何帮助,我们将不胜感激。仅此而已: 分析字符串并使用分隔符“-”拆分标记 将令牌加载到集合中 迭代集合并删除重复项 使用结果集合构建新字符串 最棘手的部分应该是3,但不是不可能的。如果使用集合,则可以跳过此步骤 编辑在添加元素之前,
String s="Bangalore-Chennai-NewYork-Bangalore-Chennai";
输出应该是这样的
String s="Bangalore-Chennai-NewYork-";
使用Java
如有任何帮助,我们将不胜感激。仅此而已:
集合中
集合
并删除重复项集合
构建新字符串集合
,则可以跳过此步骤
编辑在添加元素之前,您可以用状态检查代替2和3
集合中
集合
并删除重复项集合
构建新字符串集合
,则可以跳过此步骤
编辑在添加元素之前,您可以使用状态检查替换2和3您可以将字符串添加到哈希集中
Set<String> set = new HashSet<String>();
for(int i=0; i < arr.length; i++){
if(set.contains(arr[i])){
System.out.println("Duplicate string found at index " + i);
} else {
set.add(arr[i]);
}
Set Set=newhashset();
对于(int i=0;i
您可以将字符串添加到哈希集中
Set<String> set = new HashSet<String>();
for(int i=0; i < arr.length; i++){
if(set.contains(arr[i])){
System.out.println("Duplicate string found at index " + i);
} else {
set.add(arr[i]);
}
Set Set=newhashset();
对于(int i=0;i
印刷品:
Bangalore-Chennai-NewYork
印刷品:
Bangalore-Chennai-NewYork
通过按
-
拆分来创建字符串数组,然后从中创建哈希集
String s="Bangalore-Chennai-NewYork-Bangalore-Chennai";
String[] strArr = s.split("-");
Set<String> set = new HashSet<String>(Arrays.asList(strArr));
下面是执行此操作的示例代码:
String s="Bangalore-Chennai-NewYork-Bangalore-Chennai";
String[] strArr = s.split("-");
Set<String> set = new LinkedHashSet<String>(Arrays.asList(strArr));
String[] result = new String[set.size()];
set.toArray(result);
StringBuilder res = new StringBuilder();
for (int i = 0; i < result.length; i++) {
String string = result[i];
if(i==result.length-1)
res.append(string);
else
res.append(string).append("-");
}
System.out.println(res.toString());
通过按
-
拆分来创建字符串数组,然后从中创建哈希集
String s="Bangalore-Chennai-NewYork-Bangalore-Chennai";
String[] strArr = s.split("-");
Set<String> set = new HashSet<String>(Arrays.asList(strArr));
下面是执行此操作的示例代码:
String s="Bangalore-Chennai-NewYork-Bangalore-Chennai";
String[] strArr = s.split("-");
Set<String> set = new LinkedHashSet<String>(Arrays.asList(strArr));
String[] result = new String[set.size()];
set.toArray(result);
StringBuilder res = new StringBuilder();
for (int i = 0; i < result.length; i++) {
String string = result[i];
if(i==result.length-1)
res.append(string);
else
res.append(string).append("-");
}
System.out.println(res.toString());
这在一行中完成:
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"));
}
请注意,订单将被保留:)
重点是:
将不同的值作为一个数组提供给我们split(“-”)
将数组转换为列表Arrays.asList()
保留唯一性和插入顺序-它完成了为我们提供唯一值的所有工作,这些值通过构造函数传递LinkedHashSet
- 列表的
是toString()
[element1,element2,…]
- 最后的
命令删除replace
toString()中的“标点符号”
”、“
”——这是对此类简洁代码的合理要求
Java8更新!
当然是一行:
public String deDup(String s) {
return Arrays.stream(s.split("-")).distinct().collect(Collectors.joining("-"));
}
正则表达式更新!
如果您不关心保留顺序(即删除第一次出现的重复项是可以的):
这在一行中完成:
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"));
}
请注意,订单将被保留:)
重点是:
将不同的值作为一个数组提供给我们split(“-”)
将数组转换为列表Arrays.asList()
保留唯一性和插入顺序-它完成了为我们提供唯一值的所有工作,这些值通过构造函数传递LinkedHashSet
- 列表的
是toString()
[element1,element2,…]
- 最后的
命令删除replace
toString()中的“标点符号”
”、“
”——这是对此类简洁代码的合理要求
Java8更新!
当然是一行:
public String deDup(String s) {
return Arrays.stream(s.split("-")).distinct().collect(Collectors.joining("-"));
}
正则表达式更新!
如果您不关心保留顺序(即删除第一次出现的重复项是可以的):
wordsArray=s.split(“-”);
List wordsList=newarrays.asList(wordsArray);
Set wordsSet=newlinkedhashset(wordsList);
String[]noDuplicates=新字符串[wordsSet.size()];
文字集toArray(无副本);
wordsArray=s.split(“-”);
List wordsList=newarrays.asList(wordsArray);
Set wordsSet=newlinkedhashset(wordsList);
String[]noDuplicates=新字符串[wordsSet.size()];
文字集toArray(无副本);
我更喜欢比上面所有内容都简单的方法
public void removeDuplicates() {
String myString = "Bangalore-Chennai-NewYork-Bangalore-Chennai";
String[] array = myString.split("-");
Set<String> hashSet = new HashSet<String>(Arrays.asList(array));
String newString = StringUtils.join(hashSet, "-");
}
public void removeDuplicates(){
String myString=“班加罗尔钦奈纽约班加罗尔钦奈”;
String[]数组=myString.split(“-”);
Set hashSet=新的hashSet(Arrays.asList(array));
String newString=StringUtils.join(hashSet,“-”);
}
我更喜欢比上面所有内容都简单的方法
public void removeDuplicates() {
String myString = "Bangalore-Chennai-NewYork-Bangalore-Chennai";
String[] array = myString.split("-");
Set<String> hashSet = new HashSet<String>(Arrays.asList(array));
String newString = StringUtils.join(hashSet, "-");
}
public void removeDuplicates(){
String myString=“班加罗尔钦奈纽约班加罗尔钦奈”;
String[]数组=myString.split(“-”);
Set hashSet=新的hashSet(Arrays.asList(array));
String newString=StringUtils.join(hashSet,“-”);
}
导入java.util.HashSet;
公共类拆分字符串{
公共静态void main(字符串[]args){
字符串st=新字符串(“新德里钦奈纽约班加罗尔钦奈新德里钦奈纽约”);
StringBuffer stb=新的StringBuffer();
HashSet HashSet=新的HashSet();
对于(字符串a:st.split(“-”))
添加(a);
Object[]str=(Object[])hashset.toArray();
对于(int i=0;i
导入java.util.HashSet;
公共类拆分字符串{
公共静态void main(字符串[]args){
字符串st=n
import java.util.HashSet;
public class SplitString {
public static void main(String[] args) {
String st = new String("New Delhi-Chennai-New York-Bangalore-Chennai-New Delhi-Chennai-New York");
StringBuffer stb = new StringBuffer();
HashSet<String> hashset = new HashSet<String>();
for (String a : st.split("-"))
hashset.add(a);
Object[] str = (Object[]) hashset.toArray();
for (int i = 0; i < str.length; i++) {
stb.append(str[i]);
if (i < str.length - 1)
stb.append("-");
}
System.out.println(stb);
}
}
import java.util.*;
public class RemoveDuplicateWord {
public static void main(String[] args) {
String str = "Hai hello Hai how hello are how you";
removeDupWord(str);
}
public static void removeDupWord(String input) {
List<String> list = Arrays.asList(input.split(" "));
LinkedHashSet<String> lhs = new LinkedHashSet<String>(list);
for(String s : lhs) {
System.out.print(s+" ");
}
}
}
public static void main(String[] args) {
String str="Bangalore-Chennai-Newyork-Bangalore-Chennai";
String output="";
String [] arr=str.split("-");
LinkedHashSet<String> lhs=new LinkedHashSet<String>();
for (int i = 0; i < arr.length; i++) {
lhs.add(arr[i]);
}
for(String s:lhs){
output=output+s+"-";
}
System.out.println(output);
}
static String RemoveDuplicateCharInString(String s){
for (int i = 0; i < s.length(); i++) {
if((s.substring(i+1)).indexOf(s.charAt(i))!=-1){
s=s.substring(0,i+1)+(s.substring(i+1)).replaceAll(""+s.charAt(i),"");
}
}
return s;
}
String reason = "Word1 , Word2 , Word3";
HashMap<String,String> temp_hash = new HashMap<String,String>();
StringBuilder reason_fixed = new StringBuilder();
//in:
for(String word : reason.split(",")){
temp_hash.put(word,word);
}
//out:
for(String words_fixed : temp_hash.keySet()){
reason_fixed.append(words_fixed + " , ");
}
//print:
System.out.println(reason_fixed.toString());
public class RemDuplicateWordFromString {
public static void main(String[] args) {
String s1 = "Hello India Hello India Hello India Hello India";
countWords(s1);
}
public static void countWords(String s1) {
String[] s2 = s1.split(" ");
for (int i = 0; i < s2.length; i++) {
for (int j = i + 1; j < s2.length; j++) {
if (s2[i].equals(s2[j])) {
if (i != j) {
s2[i] = "";
}
}
}
}
for (int i = 0; i < s2.length; i++) {
if (s2[i] != "") {
System.out.print(s2[i] + " ");
}
}
}
StringBuilder builderWord = new StringBuilder(word);
for(int index=0; index < builderWord.length(); index++) {
for(int reverseIndex=builderWord.length()-1; reverseIndex > index;reverseIndex--) {
if (builderWord.charAt(reverseIndex) == builderWord.charAt(index)) {
builderWord.deleteCharAt(reverseIndex);
}
}
}
return builderWord.toString();