我應該從主方法(s1,s2,s3和s4中的掃描程序中抓取4個字符串 - 主方法在測試完成後完美工作)並調用這個:我在這種方法做錯了什麼? (使用StringBuilder從4個字符串中創建一個新單詞)
- > concat(s1,s2,s3,s4);
方法名稱concat
可能是誤導性的,因爲我不只是想要s1+s2+s3+s4
。我真正需要的是從s1
開始,然後添加s2
,s3
和s4
中尚未出現在結果String
中的字符。例如,如果是s1
「漏極」和s2
是「丹麥人」時,處理後s2
部分結果將是「draine」自d
,a
和n
已經存在於結果String
。
這裏是方法:
public static void concat(String s1, String s2, String s3, String s4) {
String str;
StringBuilder createdWord = new StringBuilder();
for (int i = 0; i < s1.length(); i++) {
char c = s1.charAt(i);
for (int j = 0; j < createdWord.length(); j++) {
if (createdWord.charAt(j) != c)
createdWord.append(c);
}
}
for (int i = 0; i < s2.length(); i++) {
char c = s2.charAt(i);
for (int j = 0; j < createdWord.length(); j++) {
if (createdWord.charAt(j) != c)
createdWord.append(c);
}
}
for (int i = 0; i < s3.length(); i++) {
char c = s3.charAt(i);
for (int j = 0; j < createdWord.length(); j++) {
if (createdWord.charAt(j) != c)
createdWord.append(c);
}
}
for (int i = 0; i < s4.length(); i++) {
char c = s4.charAt(i);
for (int j = 0; j < createdWord.length(); j++) {
if (createdWord.charAt(j) != c)
createdWord.append(c);
}
}
str = createdWord.toString();
System.out.println(str);
}
當我嘗試打印(STR),我得到了一個空白的輸出。我肯定有一種方法可以使這個更簡單。
我會接受基於清晰度,簡單性和/或更簡單解決方案的答案。提前致謝!
我剛剛進行了編輯,從其中一個答案的評論中引入了您的觀點。我有沒有得到它,還是還有一些需要表達的微妙之處? –
是的,這很有道理。我看到了混亂的地方。謝謝,埃裏克,這是一個非常糟糕的名稱選擇來調用我的方法。 –