package zzuli.odd;
/**======================================
* System Name:StringTest
* SubSystem Name:
* --------------------------------------
* Create Date/Change History
* --------------------------------------
* 2008/09/05 WULIANG Create
* result:是偶数
* 佤她吓;戕後她
* 你好吗?我很好
* --------------------------------------
*/
public class OddDecider {
/**
* @param args
*/
public static void main(String[] args) {
OddDecider od = new OddDecider();
int a = 6;
String str = "你好吗?我很好";
//测试基偶数
if(od.odd(a)){
System.out.println("该数是基数");
}else{
System.out.println("是偶数");
}
//测试加密
System.out.println(""+od.secret(str));
System.out.println(" "+od.secret(od.secret(str)));
}
/**
* 判断一个数是否是基数。原理:基数的数值若以二进制来表示,
* 最右边的位必为1而偶数最右边的位必为0,所以使用与输入的值做
* AND运算1&1=1,1&0=0,0&0=0
* 如:整数4:00000100 整数3: 00000011
* 整数1:00000001 整数1: 00000001
* AND => 00000000 3&1 = 00000001
* @param a 传入的值
* @return 返回一个布尔型,返回true则是基数,返回false则是偶数
*/
public boolean odd(int a){
return (a&1)!= 0;
}
/**
* 用于加密机制
* @param str 输入的字符串
* @return 返回一个加密的字符串,可以称为乱码了
*/
public String secret(String str){
//定义存放字符的数组
char ch[] = new char[str.length()];
//定义接收字符串的数组
String s = "";
//存放到数据
for(int i=0;i<str.length();i++){
ch[i]= (char)((char)(str.charAt(i))^4);
}
//将转换成字符串
for(int i=0;i<str.length();i++){
s += ch[i];
}
return s;
}
}