public final class IdentifierUtil
extends java.lang.Object
初始化一个标示符: IdentifierUtil.newIdentifier(10, 'A') = AAAAAAAAAA
从标识符中取得某一位的值: IdentifierUtil.lookup("AAABAAAAAA", 3) = B
判断标识符中某一位的值是否等于指定的值: IdentifierUtil.lookupInner("AAABAAAAAA", 3, 'B') = true
修改标识符中取得某一位的值: IdentifierUtil.update("AAABAAAAAA", 3, 'A') = AAAAAAAAAA
在应用中的使用方法
public class Templete {
//定义标志符的长度,到需要扩充的时候,只需要修改该值,其它不变
protected static final int INENTIFIER_SIZE = 20;
//标志位, 共100位,采用枚举的自然顺序
protected static enum INENTIFIER_INDEX {
HAS_ATTACHMENTS, // 是否有附件
};
private String identifier;
//自动调整标志符的长度
public String getIdentifier() {
return IdentifierUtil.newIdentifier(this.identifier, INENTIFIER_SIZE, '0');
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
//从标志符中取出否有附件的标志
public boolean isHasAttachments() {
return IdentifierUtil.lookupInner(identifier, INENTIFIER_INDEX.HAS_ATTACHMENTS.ordinal(), '1');
}
//利用标志符记录是否有附件
public void setHasAttachments(boolean hasAttachments) {
this.identifier = IdentifierUtil.update(this.getIdentifier(), INENTIFIER_INDEX.HAS_ATTACHMENTS.ordinal(), '1');
}
}
| 构造器和说明 |
|---|
IdentifierUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static java.lang.Character |
lookup(java.lang.String identifier,
int index)
从标识符中取得某一位的值
IdentifierUtil.lookup("00000000000000000000", 10) = 0
IdentifierUtil.lookup("AAABAAAAAA", 3) = B
IdentifierUtil.lookup("AAABAAAAAA", 7) = A
|
static boolean |
lookupInner(java.lang.String identifier,
int index,
char value)
判断标识符中某一位的值是否等于指定的值
IdentifierUtil.lookupInner("00000000000000000000", 10, '1') = false
IdentifierUtil.lookupInner("AAABAAAAAA", 3, 'B') = true
IdentifierUtil.lookupInner("AAABAAAAAA", 4, 'B') = false
|
static java.lang.String |
newIdentifier(int initialCapacity,
char initialValue)
初始化一个标示符
IdentifierUtil.newIdentifier(20, '0') = 00000000000000000000
IdentifierUtil.newIdentifier(10, 'A') = AAAAAAAAAA
|
static java.lang.String |
newIdentifier(java.lang.String originalIdentifier,
int capacity,
char initialValue)
扩充标示符容量
IdentifierUtil.newIdentifier("101000000", 20, '0') = 101000000000000000
IdentifierUtil.newIdentifier("AAAAA", 10, 'A') = AAAAAAAAAA
IdentifierUtil.newIdentifier(null, 10, 'A') = AAAAAAAAAA
|
static java.lang.String |
update(java.lang.String identifier,
int index,
char value)
修改标识符中取得某一位的值
IdentifierUtil.update("00000000000000000000", 9, '1') = 00000000010000000000
IdentifierUtil.update("AAABAAAAAA", 3, 'A') = AAAAAAAAAA
IdentifierUtil.update("AAAAAAAAAA", 0, 'B') = BAAAAAAAAA
|
public static java.lang.String newIdentifier(int initialCapacity,
char initialValue)
IdentifierUtil.newIdentifier(20, '0') = 00000000000000000000 IdentifierUtil.newIdentifier(10, 'A') = AAAAAAAAAA
initialCapacity - 初始化长度initialValue - 每一位的初始化值public static java.lang.String newIdentifier(java.lang.String originalIdentifier,
int capacity,
char initialValue)
IdentifierUtil.newIdentifier("101000000", 20, '0') = 101000000000000000
IdentifierUtil.newIdentifier("AAAAA", 10, 'A') = AAAAAAAAAA
IdentifierUtil.newIdentifier(null, 10, 'A') = AAAAAAAAAA
originalIdentifier - 原始的标示符increasesCapacity - 新的长度initialValue - 每一位的初始化值public static java.lang.Character lookup(java.lang.String identifier,
int index)
IdentifierUtil.lookup("00000000000000000000", 10) = 0
IdentifierUtil.lookup("AAABAAAAAA", 3) = B
IdentifierUtil.lookup("AAABAAAAAA", 7) = A
identifier - index - 从0开始, 注意越界哦public static boolean lookupInner(java.lang.String identifier,
int index,
char value)
IdentifierUtil.lookupInner("00000000000000000000", 10, '1') = false
IdentifierUtil.lookupInner("AAABAAAAAA", 3, 'B') = true
IdentifierUtil.lookupInner("AAABAAAAAA", 4, 'B') = false
identifier - index - 从0开始, 注意越界哦value - public static java.lang.String update(java.lang.String identifier,
int index,
char value)
IdentifierUtil.update("00000000000000000000", 9, '1') = 00000000010000000000
IdentifierUtil.update("AAABAAAAAA", 3, 'A') = AAAAAAAAAA
IdentifierUtil.update("AAAAAAAAAA", 0, 'B') = BAAAAAAAAA
identifier - index - 从0开始, 注意越界哦value - 新的值