查找字符串中所有不重复的字符
find all non repeated character in a string
你能帮我加入这个 java 程序吗?
我有两个字符串,我需要确定没有重复字母的字符是什么。
输入是:
热爱生活
输出将是:
ovif
它将删除所有具有重复的字符。
这是我的代码,但它只打印并找到重复的字母。
public static void main(String[] args) {
Map<Character, Integer> map = new HashMap<Character, Integer>();
input = new Scanner(System.in);
String aw, bw;
System.out.println("Input First Word: ");
aw=input.next();
System.out.println("Input Second Word: ");
bw=input.next();
String s = aw+bw;
char[] chars = s.toCharArray();
for(Character ch:chars){
if(map.containsKey(ch)){
map.put(ch, map.get(ch)+1);
} else {
map.put(ch, 1);
}
}
Set<Character> keys = map.keySet();
for(Character ch:keys){
if(map.get(ch) > 1){
System.out.println(ch+" ");
}
}
}
我想打印它在那个程序中删除的字符。
for(Character ch:keys){
if(map.get(ch) == 1){
System.out.println(ch+" ");
}
}
将打印出出现一次的所有字符。您将两个字符串中的每个字符都添加到映射中,因此只出现一次的字符的值为 1。
A Set
非常适合检查历史记录。
public void test() {
String s = "love life";
Set<Character> unique = new HashSet<>();
Set<Character> duplicate = new HashSet<>();
for (char c : s.toCharArray()) {
// Have we seen this one before already.
if (!duplicate.contains(c)) {
if (!unique.add(c)) {
// It was already there.
unique.remove(c);
// Mark it as duplicate.
duplicate.add(c);
}
}
}
System.out.println("Unique:" + Arrays.toString(unique.toArray(new Character[0])));
}
操作 Set
s 很简单:
Set<Character> inString(String s) {
Set<Character> in = new HashSet<>();
for (char c : s.toCharArray()) {
in.add(c);
}
return in;
}
public void test() {
Set<Character> inFirst = inString("glass");
Set<Character> inSecond = inString("bass");
Set<Character> inFirstButNotInSecond = new HashSet<>(inFirst);
inFirstButNotInSecond.removeAll(inSecond);
System.out.println("In first but not in second:" + inFirstButNotInSecond);
}
你能帮我加入这个 java 程序吗? 我有两个字符串,我需要确定没有重复字母的字符是什么。 输入是: 热爱生活 输出将是: ovif
它将删除所有具有重复的字符。
这是我的代码,但它只打印并找到重复的字母。
public static void main(String[] args) {
Map<Character, Integer> map = new HashMap<Character, Integer>();
input = new Scanner(System.in);
String aw, bw;
System.out.println("Input First Word: ");
aw=input.next();
System.out.println("Input Second Word: ");
bw=input.next();
String s = aw+bw;
char[] chars = s.toCharArray();
for(Character ch:chars){
if(map.containsKey(ch)){
map.put(ch, map.get(ch)+1);
} else {
map.put(ch, 1);
}
}
Set<Character> keys = map.keySet();
for(Character ch:keys){
if(map.get(ch) > 1){
System.out.println(ch+" ");
}
}
}
我想打印它在那个程序中删除的字符。
for(Character ch:keys){
if(map.get(ch) == 1){
System.out.println(ch+" ");
}
}
将打印出出现一次的所有字符。您将两个字符串中的每个字符都添加到映射中,因此只出现一次的字符的值为 1。
A Set
非常适合检查历史记录。
public void test() {
String s = "love life";
Set<Character> unique = new HashSet<>();
Set<Character> duplicate = new HashSet<>();
for (char c : s.toCharArray()) {
// Have we seen this one before already.
if (!duplicate.contains(c)) {
if (!unique.add(c)) {
// It was already there.
unique.remove(c);
// Mark it as duplicate.
duplicate.add(c);
}
}
}
System.out.println("Unique:" + Arrays.toString(unique.toArray(new Character[0])));
}
操作 Set
s 很简单:
Set<Character> inString(String s) {
Set<Character> in = new HashSet<>();
for (char c : s.toCharArray()) {
in.add(c);
}
return in;
}
public void test() {
Set<Character> inFirst = inString("glass");
Set<Character> inSecond = inString("bass");
Set<Character> inFirstButNotInSecond = new HashSet<>(inFirst);
inFirstButNotInSecond.removeAll(inSecond);
System.out.println("In first but not in second:" + inFirstButNotInSecond);
}