1
我正在創建一個非常簡單的編碼器,用於將字符串中的字符進行混洗。我寫了它把這個字符串分成兩半,形成了兩個新的變量。用戶選擇他們想要的shuffle數量,並將其作爲新類構造函數中的參數傳遞 - 然後應該在整個類中使用該shuffle值。我的不是。相反,shuffleEncryption方法使用類變量0。我知道這肯定是非常明顯的,但我沒有抓住它。 :/構造函數參數值未實現
//從主類
System.out.println("Enter message to encrypt: ");
String message = input.next();
System.out.print("Number of shuffles: ");
int numShuffles = input.nextInt();
ShuffleCipher shuffle = new ShuffleCipher(numShuffles);
System.out.println(shuffle.encode(message));
//洗牌類
public class ShuffleCipher implements MessageEncoder {
int shuffle;
public ShuffleCipher(int shuffle) {
shuffle = this.shuffle;
}
private String shuffleEncryption(String str) {
int middle = str.length()/2;
int loop = 1;
System.out.println("shift" + shuffle);
StringBuilder sb = new StringBuilder();
do {
String firstHalf = str.substring(0, middle);
System.out.println("first:" + firstHalf);
String secondHalf = str.substring(middle);
System.out.println("second:" + secondHalf);
for(int i = 0, j = 0; i < firstHalf.length(); i++, j++) {
sb = sb.append(secondHalf.charAt(i));
if(j < secondHalf.length()) {
sb = sb.append(firstHalf.charAt(i));
}
str = sb.toString();
}
loop++;
} while (loop <= shuffle);
return str;
}
@Override
public String encode(String plainText) {
String shuffled;
shuffled = shuffleEncryption(plainText);
return shuffled;
}
}
謝謝Jabbslad,我知道它要的東西很微妙。認爲是休息時間了。 ;) – wellington