删除重复字符

题目难度:简单

知识点:字符串

方法一

通过字符下标判断该字符是否需要输出。使用lastIndexOf()和indexOf()方法,其中lastIndexOf()表示字符在此字符串中最后一次出现的索引,indexOf()表示字符在此字符串中第一次出现的索引。定义一个StringBuffer用于存储输出结果。遍历字符串,判断该字符第一次和最后第一出现的下标是否一致,若一致,则添加该字符串到StringBuffer中,否则,继续判断当前下标是否与该字符第一次下标一致,若一致,则添加至StringBuffer中,直至循环结束。

import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        String s=in.next();
        //定义一个StringBuffer用于添加输出结果
        StringBuffer result =new StringBuffer();
        for (int i=0;i<s.length();i++){
            char c=s.charAt(i);
            //比较字符第一次出现的位置和最后一次出现的位置
            if (s.lastIndexOf(c)==s.indexOf(c)){
                result.append(c);
            }else{
                if (i==s.indexOf(c)){
                    result.append(c);
                }
            }
        }
        System.out.print(result.toString());
    }
}

方法二

定义字符串result表示输出结果,首先添加第一个字符到result中,然后从第二个字符开始遍历字符串,判断result中是否包含当前字符,若不包含,则添加当前字符至result中,若包含,则继续循环,直至循环结束。

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        String s=in.next();
        //result表示输出结果
        String result=String.valueOf(s.charAt(0))+"";
        for(int i=1;i<s.length();i++) {
            //判断result中是否包含当前字母
            if(result.contains(String.valueOf(s.charAt(i)))){
                continue;
            }
            else {
                result=result+String.valueOf(s.charAt(i))+"";
            }
        }
        System.out.print(result);
    }
}