字符集合
将一个字符串中出现的字符输出。不输出重复的元素。
下面是题目的地址:[字符集合](字符集合__牛客网 (nowcoder.com))
解法一(使用Java的库函数)
Java提供的方便的库函数真的是太好用了,其中的contain函数可以轻易的判断字符串中是不是包含某个字符。
具体的操作解释在注释中
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine()){
String str=sc.nextLine();
//建立一个stringbuffer字符串
StringBuffer sb=new StringBuffer();
for(int i=0;i<str.length();i++){
//先将字符串转变成字符
char ch=str.charAt(i);
//然后调用contains函数,因为StringBuffer不含有contains函数,所以使用
//toString函数转化成String后再进行调用
//因为contains函数只能接受String类型的参数,所以将ch加上引号后变成String
if(!sb.toString().contains(ch+"")){
sb.append(ch);
}
}
System.out.println(sb);
}
}
}
解法二(使用数组来进行标记)
另外开辟一个数组来记录,如果一个字符的对应数组位置是0,就将该数组位置标志为1,并将该字符放入字符串中。
如果该字符对应的数组位置是1,就不再放入该位置中。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
while(scanner.hasNextLine()){
String str=scanner.nextLine();
StringBuffer sb=new StringBuffer();
//开辟一个数组
int[] arr=new int[58];
for(int i=0;i<str.length();i++){
char ch=str.charAt(i);
//如果那个字母是第一次出现的话,就降入到sb中
if(arr[ch-65]==0){
arr[ch-65]=1;
sb.append(ch);
}
}
System.out.println(sb);
}
}
}