Java中的字符串去重的方法,“1004,1004”,去除重复的1004
时间: 2024-09-12 22:09:33 浏览: 50
在Java中,如果要对字符串中的重复元素进行去重,可以通过多种方法实现。这里介绍一种较为简单的方法,使用`HashSet`集合来完成字符串的去重。下面是具体的实现步骤和代码示例:
1. 首先创建一个字符串,例如`String str = "1004,1004";`。
2. 然后使用`split`方法按照逗号分割字符串,得到一个字符串数组,例如`str.split(",");`。
3. 创建一个`HashSet`集合来存放不重复的字符串。
4. 遍历步骤2得到的字符串数组,将每个元素添加到`HashSet`中,由于`HashSet`不允许重复,所以重复的字符串将不会被添加。
5. 最后,可以使用`StringBuilder`或者`String.join`方法来将`HashSet`中的元素重新拼接成字符串。
下面是代码示例:
```java
String str = "1004,1004";
String[] splitStr = str.split(",");
Set<String> resultSet = new HashSet<>();
Collections.addAll(resultSet, splitStr);
String resultStr = String.join(",", resultSet);
System.out.println(resultStr); // 输出结果为 "1004"
```
需要注意的是,这种方法去重后,元素的顺序可能会改变,因为`HashSet`不保证元素的顺序。如果需要保持原始顺序,则需要另外的方法来实现。
相关问题
java实现字符串去重
在Java中,有多种方法可以实现字符串去重。以下是几种常见的做法:
1. **HashSet**:使用HashSet数据结构,因为集合不允许重复元素,所以将字符串添加到HashSet中,最后返回HashSet作为结果。这会自动去除重复的字符串。
```java
String str = "hello world";
Set<String> set = new HashSet<>(Arrays.asList(str.split(" ")));
String uniqueStr = String.join(" ", set);
```
2. **HashMap**:使用HashMap存储每个字符及其出现次数,然后只保留非重复的字符构建新的字符串。
```java
String str = "hello world";
Map<Character, Integer> charCountMap = new HashMap<>();
for (char c : str.toCharArray()) {
charCountMap.put(c, charCountMap.getOrDefault(c, 0) + 1);
}
StringBuilder sb = new StringBuilder();
for (Character c : charCountMap.keySet()) {
for (int i = 0; i < charCountMap.get(c); i++) {
sb.append(c);
}
}
uniqueStr = sb.toString();
```
3. **正则表达式与replaceAll()**:通过正则表达式匹配重复的字符并替换为单个字符。
```java
String str = "hello world";
uniqueStr = str.replaceAll("\\b\\w+\\b", "$&");
```
这里`\b`代表单词边界,`\w`匹配字母、数字或下划线,`+`表示一个或多个连续的匹配项。
java字符串去重工具类
以下是一个简单的 Java 工具类,可以用于去重字符串数组中的重复元素:
```java
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class StringUtil {
public static String[] removeDuplicates(String[] arr) {
Set<String> set = new LinkedHashSet<>(Arrays.asList(arr));
String[] result = new String[set.size()];
return set.toArray(result);
}
}
```
使用示例:
```java
public static void main(String[] args) {
String[] arr = {"apple", "banana", "orange", "banana", "grape", "apple"};
String[] result = StringUtil.removeDuplicates(arr);
System.out.println(Arrays.toString(result)); // output: [apple, banana, orange, grape]
}
```
这个工具类使用了 LinkedHashSet 来保证顺序,并且去除了重复元素。如果不需要保证顺序,可以改为使用 HashSet。
阅读全文
相关推荐














