⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b8zs.java

📁 数字信号的八种编码技术,用java实现的!仅供参考
💻 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 + -