关于对字符串做异或运算

Rudeeeeeee 2008-05-07 10:50:40
如何对一个字符串里的每天字符做异或运算
比如 :string s = "abcdedfg";
int nn = 99;
如何用数字99对每个字符做异或运算,并返回新的字符串
...全文
3446 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchunhui407 2008-05-08
  • 打赏
  • 举报
回复
写错了....
String str = "abcefghijklmn";
char b[] = str.toCharArray();
int len = b.length;

while(len!=0)
{
b[len -(count++)] = (char)( (int)( (b[len -1] ) )
^ ( ((count&0x1) ==0)?(len&0xff):((len>>8)&0xff) ) ) ;
len = len>>8;
}
str = new String(b);

忘记前面++了
wangchunhui407 2008-05-08
  • 打赏
  • 举报
回复
String str = "abcefghijklmn";
char b[] = str.toCharArray();
int len = b.length;

while(len!=0)
{
b[len -(count++)] = (char)( (int)( (b[len -1] ) )
^ ( ((count&0x1) ==1)?(len&0xff):((len>>8)&0xff) ) ) ;
len = len>>8;
}
str = new String(b);

没试结果,估计NEW出来的STRING已经不成样了.
Rudeeeeeee 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wangchunhui407 的回复:]
String str = "abcefghijklmn";
char b[] = str.toCharArray();
int len = b.length;
int count = 1;
while(len!=0)
{
b[len -(count--)] = (char)( (int)( (b[len -1] ) ) ^ (len&0xff)) ;
len = len>>8;
}
str = new String(b);

异或结果是abcefghijklmc

异或在JAVA里他强制是需要int型的吧,只有把string转换成int才能用异或.你是不是要对这段字符串进行加密?
[/Quote]

你这是每两个字符处理, 一个汉字占两个字节,我要的是每两字节处理
hnjd314053754 2008-05-07
  • 打赏
  • 举报
回复
看看,学学
yxh1226 2008-05-07
  • 打赏
  • 举报
回复
logi22 2008-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xy19840627 的回复:]
String src = "abcdefg";
String dis = "";
int nn = 2;

for (int i = 0; i < src.length(); i++)
{
char c = src.charAt(i);
c = (char)(c ^ nn);
dis += c;
}

是这样吗?
[/Quote]
nn=99;
lz应该是这个意思
懒得抠虱子 2008-05-07
  • 打赏
  • 举报
回复
String src = "abcdefg";
String dis = "";
int nn = 2;

for (int i = 0; i < src.length(); i++)
{
char c = src.charAt(i);
c = (char)(c ^ nn);
dis += c;
}

是这样吗?
wangchunhui407 2008-05-07
  • 打赏
  • 举报
回复
String str = "abcefghijklmn";
char b[] = str.toCharArray();
int len = b.length;
int count = 1;
while(len!=0)
{
b[len -(count--)] = (char)( (int)( (b[len -1] ) ) ^ (len&0xff)) ;
len = len>>8;
}
str = new String(b);

异或结果是abcefghijklmc

异或在JAVA里他强制是需要int型的吧,只有把string转换成int才能用异或.你是不是要对这段字符串进行加密?
Rudeeeeeee 2008-05-07
  • 打赏
  • 举报
回复
那如何对一个字符串异或,而不是对字符串里的每个字符
比如:string s ="ab"
int len = 2;
用len异或字符串s
jdlsfl 2008-05-07
  • 打赏
  • 举报
回复
学习

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧