Encrypt.java 的程式原始碼如下
package encryptor; // 套件 public class Encrypt { // 屬性區 private char[] cArray = new char[26]; private int a; private int b; private int n; private char c; private int diff; // 建構子區 public Encrypt(int a, int b, int n, char c, int dif) { setA(a); setB(b); setN(n); setC(c); setDif(dif); setArray(); } public Encrypt(int a, int b) { this(a, b, 26, 'a', 97); } public Encrypt() { int ta = 0; int tb = 0; while (ta % 2 == 0) { ta = (int) (Math.random() * 10); tb = (int) (Math.random() * 10); } setA(ta); setB(tb); setN(26); setC('a'); setDif(97); setArray(); } // setter 與 getter 區 public void setA(int arg) { a = arg; } public int getA() { return a; } public void setB(int arg) { b = arg; } public int getB() { return b; } public void setN(int arg) { n = arg; } public int getN() { return n; } public void setC(char arg) { c = arg; } public char getC() { return c; } public void setDif(int arg) { diff = arg; } public int getDif() { return diff; } public void setArray() { int i, d, ci, m; char r; for (i = 0; i < n; i++) { ci = getC(); d = ci * getA() + getB(); m = d % getN(); r = (char) (m + getDif()); cArray[i] = r; c++; } } public char[] getArray() { return cArray; } // 進行編碼的方法 public String toEncode(String s) { char[] cs = s.toCharArray(); int i, ci, d, m; char r; String rs = ""; Character cc; for (i = 0; i < cs.length; i++) { if (cs[i] >= 97 && cs[i] <= 122) { ci = cs[i]; m = ci - 97; cs[i] = getArray()[m]; } } for (i = 0; i < cs.length; i++) { cc = new Character(cs[i]); rs = rs.concat(cc.toString()); } return rs; } // 進行解碼的方法 public String toDecode(String s) { char[] cs = s.toCharArray(); int i, j; char r; String rs = ""; Character cc; for (i = 0; i < cs.length; i++) { if (cs[i] >= 97 && cs[i] <= 122) { for (j = 0; j <= getArray().length; j++) { if (cs[i] == getArray()[j]) { cs[i] = (char) (j + getDif()); break; } } } } for (i = 0; i < cs.length; i++) { cc = new Character(cs[i]); rs = rs.concat(cc.toString()); } return rs; } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:Encrypt.java 功能:示範 Java 程式 作者:張凱慶 時間:西元 2011 年 4 月 */
您可以繼續參考
範例程式碼
相關目錄
回 Java 入門指南
回 Java 教材目錄
回首頁
參考資料
The JavaTM Tutorials: Getting Started
The JavaTM Tutorials: Learning the Java Language
The JavaTM Tutorials: Essential Classes
The Java Language Specification, Third Edition
本文於 2013 年 1 月訂正
2 則留言:
第88行的ci = getC();
應該是在for迴圈外面唷~
有空的話,動動手指打打鍵盤編譯一下吧
^_^
張貼留言