要求:把一个字符串去掉重复的字符,并生成新的新的字符串,最后打印到控制台上。字符串去重前,去重后,例如:
- 你好,世界,今天又又是充满满希望的一天。
- 你好,世界今天又是充满希望的一。
实现代码如下:
public static void main(String[] args) {
String s = "你好,世界,今天又又是充满满希望的一天。";
char[] c = new char[s.length()]; // 不重复的字符数组c
int length = 0; // 记录数组c中当前存入字符数量
for (int i = 0; i < s.length(); i++) { // 遍历字符串每个字符
boolean flag = false; // 设置标记
for (int j = 0; j < length; j++) { // 循环判断字符数组c是否存在该字符
if(c[j] == s.charAt(i)){
flag = true; // 此字符已经存在
}
}
if(!flag){
c[length] = s.charAt(i); // 不存在,则加入到c
length++;
}
}
String str = new String(c,0,length); // 生成一个新的字符串
System.out.println(str);
}
程序执行结果:
- 你好,世界今天又是充满希望的一。
此外,你可以使用 字符串.indexOf方法,快速判断字符串中是否存在某个字符,例如以下代码效果和上述一致
public static void main(String[] args) {
String s = "你好,世界,今天又又是充满满希望的一天。";
String s2 = "";
for (int i = 0; i < s.length(); i++) {
if(s2.indexOf(s.charAt(i)) == -1){ // 不存在
s2 += s.charAt(i); // 拼接到新字符串
}
}
System.out.println(s2);
}
程序执行结果:
- 你好,世界今天又是充满希望的一。