📄 b8zs.java
字号:
package wxj.code.impl;
import java.util.ArrayList;
import java.util.List;
import wxj.code.Code;
import wxj.Regular.LevelRule;
public class B8ZS extends LevelRule implements Code {
private List<String> b8ZSStrings = new ArrayList<String>();
private char[] cs;
private String level = LOW_LEVEL;
public B8ZS(char[] cs, int initialLevel) {
this.cs = cs;
if (initialLevel == 0) {
this.level = LOW_LEVEL;
} else {
this.level = HIGH_LEVEL;
}
}
public List<String> excuteCodeRule() {
int n = cs.length;
String s = "";
for (int i = 0; i < n; i++) {
s += cs[i];
}
List<Integer> listI = new GetListI().excute(s);
for (int i = 0; i < n; i++) {
if (this.isExist(listI, i)) {
this.doB8ZSRule(level);
i += 7;
} else {
if (cs[i] == '0') {
b8ZSStrings.add(MIDDLE_LEVEL);
}
if (cs[i] == '1') {
level = this.transform(level);
b8ZSStrings.add(level);
}
}
}
return b8ZSStrings;
}
public String getName() {
return "B8ZS";
}
private void doB8ZSRule(String level) {
if (level.endsWith(HIGH_LEVEL)) {
b8ZSStrings.add(MIDDLE_LEVEL);
b8ZSStrings.add(MIDDLE_LEVEL);
b8ZSStrings.add(MIDDLE_LEVEL);
b8ZSStrings.add(HIGH_LEVEL);
b8ZSStrings.add(LOW_LEVEL);
b8ZSStrings.add(MIDDLE_LEVEL);
b8ZSStrings.add(LOW_LEVEL);
b8ZSStrings.add(HIGH_LEVEL);
}
if (level.endsWith(LOW_LEVEL)) {
b8ZSStrings.add(MIDDLE_LEVEL);
b8ZSStrings.add(MIDDLE_LEVEL);
b8ZSStrings.add(MIDDLE_LEVEL);
b8ZSStrings.add(LOW_LEVEL);
b8ZSStrings.add(HIGH_LEVEL);
b8ZSStrings.add(MIDDLE_LEVEL);
b8ZSStrings.add(HIGH_LEVEL);
b8ZSStrings.add(LOW_LEVEL);
}
}
private String transform(String level) {
if (level.endsWith(HIGH_LEVEL)) {
return LOW_LEVEL;
} else {
return HIGH_LEVEL;
}
}
private boolean isExist(List<Integer> listI, int i) {
for (int li : listI) {
if (li == i) {
return true;
}
}
return false;
}
private class GetListI {
List<Integer> list = new ArrayList<Integer>();
int t = 0;
public List<Integer> excute(String s) {
this.go(s);
return list;
}
private int g(String s) {
int i = s.indexOf("00000000");
return i;
}
private void go(String s) {
if (s.length() < 8) {
return;
}
int i = this.g(s);
if (i != -1) {
list.add(i + t);
}
String n = s.substring(i + 8);
t += i + 8;
this.go(n);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -