【发布时间】:2016-07-21 09:10:24
【问题描述】:
我想根据字符位值(用户指定)将一个字符串转换成其对应的位向量。我正在处理基因组字符串,其中我只有 4 个字符,即 A、G、C、T。我想用java中的以下位值来表示它们
A = 01
G = 11
C = 10
T = 00
现在给定一个字符串“AGGT”,那么它对应的位值应该是 01111100。我尝试过如下操作:
BitSet A = new BitSet(2);
BitSet G = new BitSet(2);
BitSet C = new BitSet(2);
BitSet T = new BitSet(2);
A.set(01);
G.set(00);
C.set(11);
T.set(10);
String p = "AGGT";
BitSet bb = new BitSet();
for(int i = 0, n = p.length() ; i < n ; i++) {
bb.set(p.charAt(i))
}
我做错了什么?如何以正确的方式做到这一点?
【问题讨论】:
-
你只想要字符串表示还是数字?
-
您可能没有阅读
BitSet上的 JavaDoc。例如,A.set(01)应该是A.set(1),即您只需将位设置在索引 1 处,而将索引 0 处的第一位设置为未设置/0。