好吧,我是java世界的新手,我似乎无法正确使用这个程序。我想删除2个字符串中的重复字符并打印非重复字符。 例如:我输入“计算机程序”。输出应该是“可爱的”,因为这些是唯一没有重复的字符。
我直到这里:
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 ......我很困惑。
答案 0 :(得分:0)
您需要的是为您的问题建立逻辑。首先打破问题陈述并开始寻找解决方案。在这里你可以采取步骤,
我会建议你推荐像“像程序员一样思考”这样的书。这将帮助您开始构建逻辑。
答案 1 :(得分:0)
答案 2 :(得分:0)
在主程序的最后一行之后添加以下代码将解决您的问题。
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);
此代码循环遍历第一个单词的所有字符,并检查第二个字符串是否包含该字符(在任何形式的情况下为Lower或Upper)。如果它不包含,则将其添加到输出字符串,最后打印它。
希望这适用于你的情况。
答案 3 :(得分:0)
如何在一行中完成它?
str = str.replaceAll("(.)(?=.*\\1)", "");