方法一:
import java.util.LinkedHashSet;
public class Solution {
public String handle(String str) {
int len = str.length();
char[] c = str.toCharArray();
//用Set可以去除重复元素,
//LinkedHashSet 可以保存输入顺序
//hashSet 可以快速读访问set
//treeSet 可以排序Set
LinkedHashSet<String> l = new LinkedHashSet<String>();
for(int i=0 ; i<len ; i++){
//因为字符不能用 + 号连接,所以在字符后加"",相当于字符串加字符仍是字符串;
l.add(c[i] + "");
}
String ss ="";
for (String d : l) {
//只有字符串可以 用+ 号连接
ss=ss + d;
}
return ss;
}
}
public class Main {
public static void main(String[] args) {
Solution solution = new Solution();
String str = solution.handle(args[0]);
System.out.println(str);
}
}
方法二:
public class Solution {
public String handle(String str) {
int len = str.length();
char[] vis = new char[128];
char[] arr2 = new char[128];
int top = 0;
int count = 0;
for (char c : str.toCharArray()) {
//这里是把c的ASCII码作为索引;
if (vis[c] == 0) {
vis[c] = '1';
arr2[top++] = c;
count++;
}
}
//将数组转化为字符串
return String.valueOf(arr2, 0, count);
}
}
精华
if (vis[c] == 0) {
vis[c] = '1';}