Java删除相同字串
时间: 2025-03-18 15:28:47 浏览: 35
### Java 中删除字符串中重复字符的实现方法
在 Java 中,可以通过多种方式来删除字符串中的重复字符。以下是基于引用内容的一种常见解决方案[^1]。
#### 方法一:使用 `StringBuilder` 和双重循环
通过遍历字符串并利用 `StringBuilder` 来构建新的无重复字符的结果字符串。具体逻辑如下:
当发现当前字符已经在前面出现过时,则将其移除,并调整索引位置以确保不会遗漏任何字符。
```java
package FifthWork;
import java.util.Scanner;
public class FifthWork {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = scan.nextLine();
StringBuilder sb = new StringBuilder(s);
for (int i = 0; i < sb.length() - 1; i++) {
for (int j = i + 1; j < sb.length(); j++) {
if (sb.charAt(i) == sb.charAt(j)) {
sb.deleteCharAt(j); // 删除重复字符
j--; // 调整索引以防跳过下一个字符
}
}
}
System.out.println("处理后的字符串: " + sb.toString());
}
}
```
此代码片段展示了如何通过嵌套循环检测到相同字符后调用 `deleteCharAt()` 函数完成删除操作。
#### 方法二:借助集合类 `Set`
另一种更简洁的方式是采用数据结构特性——即 Set 不允许存在相同的元素这一特点来进行过滤:
```java
import java.util.*;
public class RemoveDuplicatesWithSet {
public static void main(String[] args){
String inputStr = "hello world";
char[] charsArray = inputStr.toCharArray();
Set<Character> setChars = new LinkedHashSet<>();
for(char c : charsArray){
setChars.add(c);
}
StringBuilder resultString = new StringBuilder(setChars.size());
for(Character ch:setChars){
resultString.append(ch);
}
System.out.println(resultString.toString());
}
}
```
上述例子说明了如何运用 `LinkedHashSet` 自动排除掉多余的字母[^2][^3]。
这两种技术各有优劣,在实际应用过程中可以根据需求灵活选用适合自己的方案。
阅读全文
相关推荐







