这个帖子记录一下我经历过的java代码转换成易语言代码踩过的坑。
0X1 一些常用的java转换易语言的操作
str.charAt(参数)
可用易语言的取代码(str,参数+1)
代替,因为java从0开始,所以要+1
new char[参数]
用取空白字节集 (length)
代替
str.length(参数)
可用取文本长度(参数)
代替
for (int i = 0; i < length; i++) {}
for循环,可用判断循环首代替
判断循环首 (i < length)
i = i +1
判断循环尾 ()
0X2 JavaScript位运算符转换
JavaScript位运算符 | 易语言 | 转换前 | 转换后 |
---|---|---|---|
^ | 位异或 | A ^ B |
位异或(A,B) |
& | 位与 | A & B |
位与(A,B) |
| | 位或 | A | B |
位或(A,B) |
<< | 左移 | A << B |
左移(A,B) |
>> | 右移 | A >> B |
右移(A,B) |
0X3 实例1 str.charAt和new char和^和数组等
private static String xor(String str, String str2) {
int length = str2.length();
int length2 = str.length();
char[] cArr = new char[length];
for (int i = 0; i < length; i++) {
cArr[i] = (char) (str.charAt(i % length2) ^ str2.charAt(i));
}
return new String(cArr);
}
转换为易语言,如下:
length = 取文本长度 (str2)
length2 = 取文本长度 (str)
cArr = 取空白字节集 (length)
.判断循环首 (i < length)
cArr [i + 1] = 位异或 (取代码 (str, i % length2 + 1), 取代码 (str2, i + 1)) ' i+1
i = i + 1
.判断循环尾 ()
这里的坑
str.charAt(i % length2)
转为易语言要用i % length2 + 1
cArr[i]
,因为易语言从1开始,所以是cArr[i + 1]
,str2.charAt(i)
也同理是i+1