Captain Crunch解碼器環通過將字符串中的每個字母加上並添加13來工作。例如,'a'變成'n','b'變成'o'。字母在最後纏繞,所以'z'變成'm'。Captain Crunch - ROT13編碼器程序
這是我從人民的評論編輯它後有的,但現在它一直告訴我,輸出可能尚未初始化,我不知道爲什麼......還有什麼我需要的修復我的程序?
在這種情況下,我只關心與編碼小寫字符
import java.util.Scanner;
public class captainCrunch {
public static void main (String[] Args) {
Scanner sc= new Scanner(System.in);
String input;
System.out.print("getting input");
System.out.println("please enter word: ");
input= sc.next();
System.out.print(" ");
System.out.print("posting output");
System.out.print("encoding" + input + " results in: " + encode(input));
}//end of main
public static String encode(String input){
System.out.print(input.length());
int length= input.length();
int index;
String output;
char c;
String temp= " ";
for (index = 0; index < length; index++) {
c = input.charAt(index);
if (c >= 'a' && c <= 'm') c += 13;
else if (c >= 'n' && c <= 'z') c -= 13;
output= temp + (char)(c);
}
return output;
}
}
你試圖實現一個名爲「rot13」的算法。你可以在這裏找到一個基本的例子:http://introcs.cs.princeton.edu/java/31datatype/Rot13.java.html只需將System.print調用替換爲你的字符串(或者更好的stringBuilder),你很好走。 –
你想要在大寫還是小寫的情況下發生什麼?儘管你可以通過這種方式轉換'char'(並且可能適用於像這樣的任務),但除了空格中的字母之外還有其他內容 - 數字,標點符號,重音符號,「空格」(製表符,空格等)。所以,你需要弄清楚你的有效範圍的開始和結束是什麼。您可能需要模運算符('%')。你也必須擊中字符串中的每個字符,所以你將需要某種循環... –