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
- 新的值