
Encrypt.java 的程式原始碼如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | 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; } } /* 《程式語言教學誌》的範例程式 檔名: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迴圈外面唷~
有空的話,動動手指打打鍵盤編譯一下吧
^_^
張貼留言