删除重复字符
题目难度:简单
知识点:字符串
方法一
通过字符下标判断该字符是否需要输出。使用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); } }