Java 如何删除字符串中的重复字符?
好吧,我是java世界的一个新手,我似乎不能正确地使用这个程序。我想删除2字字符串中的重复字符,并打印非重复字符。 例如:我输入单词“计算机程序”。输出应该是“可爱的”,因为这些是唯一不重复的字符 我一直到这里:Java 如何删除字符串中的重复字符?,java,if-statement,merge,switch-statement,Java,If Statement,Merge,Switch Statement,好吧,我是java世界的一个新手,我似乎不能正确地使用这个程序。我想删除2字字符串中的重复字符,并打印非重复字符。 例如:我输入单词“计算机程序”。输出应该是“可爱的”,因为这些是唯一不重复的字符 我一直到这里: public static void main(String[] args) { System.out.print("Input two words: "); String str1 = Keyboard.readString(); String words[
public static void main(String[] args) {
System.out.print("Input two words: ");
String str1 = Keyboard.readString();
String words[] = str1.split(" ");
String str2 = words[0] + " ";
String str3 = words[words.length - 1] ;
}
但我不知道如何输出字符。有人能帮我吗?
我不知道我是否应该使用if、switch、for、do或do while。。。。。。我很困惑。你需要的是为你的问题建立逻辑。首先打破问题陈述,开始寻找解决方案。给你台阶
我建议你参考像“像程序员一样思考”这样的书。这将帮助您开始逻辑构建。只是一个提示:使用哈希映射()。在主程序的最后一行之后添加以下代码将解决您的问题
char[] strChars = str2.toCharArray();
String newStr="";
for (char c : strChars) {
String charStr = ""+c;
if(!str3.contains(charStr.toLowerCase()) && !str3.contains(charStr.toUpperCase())){
newStr+=c;
}
}
System.out.println(newStr);
该代码循环遍历第一个单词的所有字符,并检查第二个字符串是否包含该字符(以任何形式的大小写)。如果它不包含,则将其添加到输出字符串,并在最后打印它
希望这能在你的情况下起作用。用一行就可以了吗
str = str.replaceAll("(.)(?=.*\\1)", "");
输出不应该是“可爱的ga”吗?请考虑使用。通过一次字符串将字符映射到其计数。然后迭代映射的条目,并将频率为1的字符附加到某个缓冲区(即
StringBuilder
)。最后,打印结果。谢谢。当我看到你的结果时,我正在修改程序。我对if语句有问题。这就完成了计划。非常好。请您选择合适的帖子并将其标记为答案。