有没有人能帮我把这个PHP函数转换为java代码啊

edward1026 2010-07-29 02:54:35
function encodePass($lv_pass){
$lv_key1="54176382";
$lv_key2="1e4s2dj6l38 5097vw.";
$lv_key3="ab cdefghijklmn102p";
$lv_pass1 = " ";
for ($lv_i = 1; $lv_i <= 8; $lv_i++){
$lv_j = $lv_key1{$lv_i-1};
$lv_pass1 = substr($lv_pass1,0,$lv_i-1).$lv_pass{$lv_j-1}.substr($lv_pass1,$lv_i-8,8-$lv_i);
}
$lv_pass = $lv_pass1;
for ($lv_i = 1; $lv_i <= 8; $lv_i++){
for ($lv_j = 1; $lv_j <= 19; $lv_j++){
if ($lv_pass{$lv_i-1} == $lv_key2{$lv_j-1}){
$lv_pass1 = substr($lv_pass1,0,$lv_i-1).$lv_key3{$lv_j-1}.substr($lv_pass1,$lv_i-8,8-$lv_i);
}
}
}
return $lv_pass1;
}
...全文
65 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
床上等您 2010-07-29
不用谢。。。。。帮顶的来了
回复
edward1026 2010-07-29
自己改完了 还是谢谢大家
回复
xuzuning 2010-07-29
1、是的。PHP的下标也是从0开始的
2、Java中 substring 参数好像是 起始位置 终止位置。好像也有 substr 吧
3、substr 的参数 待截取的串 起始位置 长度
substr($lv_pass1,-7,7) 返回 $lv_pass1 的倒数第7个字符开始的7个字符
回复
edward1026 2010-07-29
感谢楼上的热心回答,我对PHP还真是一窍不通
这样的,我这边有3个问题
1. 从i=1的时候,$lv_j = $lv_key1{$lv_i-1};这边$lv_j是不是5,如果PHP的下标也是从0开始的话;
2. java对于string.substring(0,0)这种开头和结束的位置一样的截取方式是报错的;
3. substr($lv_pass1,$lv_i-8,8-$lv_i)怎么理解,当i=1的时候,substr($lv_pass1,-7,7)怎么看

谢谢
回复
PIGer920 2010-07-29
没测试

String encodePass(String lv_pass){
String lv_key1="54176382";
String lv_key2="1e4s2dj6l38 5097vw.";
String lv_key3="ab cdefghijklmn102p";
String lv_pass1 = " ";
for(int lv_i = 1; lv_i <= 8; lv_i++){
lv_j = lv_key1.subString(lv_i-2,lv_i-1);
lv_pass1 = lv_pass1.subString(0,lv_i-1)+lv_pass.subString(lv_j-2,lv_j-1)+lv_pass1.subString(lv_i-8,8-lv_i);
}
lv_pass = lv_pass1;
for (int lv_i = 1; lv_i <= 8; lv_i++){
for (int lv_j = 1; lv_j <= 19; lv_j++){
if (lv_pass.subString(lv_i-2,lv_i-1) == lv_key2.subString(lv_j-2,lv_j-1)){
lv_pass1 = lv_pass1.subString(0,lv_i-1)+lv_key3.subString(lv_j-2,lv_j-1)+lv_pass1.subString(lv_i-8,8-lv_i);
}
}
}
return lv_pass1;
}

回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告