定义一个方法接收一个字符串,去重,asdasdasd,返回一个没有重复元素的字符串-asd
使用数组实现:
//数组
public static String showTwo(String str) {
//定义一个字符串数组,数组的长度为字符串的长度
String[] s = new String[str.length()];
//定义一个字符串用来返回
String na ="";
//定义一个数字用来获取数组里的字符串
int num =0;
//使用双循环外面的循环获取字符字符
for (int j = 0; j <str.length(); j++) {
//拼接+""就可以使用字符串来接收
String a =str.charAt(j)+"";
//里面的循环比较字符串里面有没有重复
for (int i = 0; i <s.length; i++) {
//如果重复直接break进入下一次循环
if (a.equals(s[i])){
break;
}
//如果循环结束都没有这个字符串那就把这个字符串添加进数组的第一位
//然后num++下一次添加就会放到第二位
if (i==s.length-1){
s[num] =a;
num++;
}
}
}
//num就是存进去的最大值
for (int k = 0; k <num; k++) {
//把存进去的字符串取出来拼接起来
na =s[k]+na;
}
//返回字符串
return na;
}
//键盘输入字符串
Scanner str =new Scanner(System.in);
System.out.println("请输入字符串");
String string =str.next();
//调用创建的方法
System.out.println(showTwo(string));
要注意里层循环的第一个if判断不能用s[i].equals(a),因为数组的内容默认是null,会报:java.lang.NullPointerException
第二个if不能变成(!a.equals(s[i]) 这样第一个循环比较下来数组的所有值都会变成第一个a的值