虽然我正在努力做的事情非常明显,但我不想被告知如何提出最终结果,即使我正在采取的方式是错误的(虽然提示会受到赞赏) 。反正...
以字符串格式“01110101”为例,表示数字的8位二进制表示。如果我反转这个数字,我会得到“10101110”。如果我想找到每个1的位置并将它们添加到数组中,我将如何去做呢?我尝试使用indexOf('1'),但它继续返回0或1作为索引。
编辑:最终结果,我的意思是我试图用所有这些来完成的总体目标,而不是我要问的问题。我只是想阻止某人跳进来告诉我如何从二进制转换为十二而不是回答我当前的问题......
Edit2:好的,我会更具体。基本上,我正在尝试取一个二进制数,翻转它们并获取它们的位置并将它们添加到数组中。然后我将尝试迭代数组,将每个位置的功率加上2并将它们相加。也许不是从二进制转换为十进制的最有效方法,但这是我想出的。
答案 0 :(得分:2)
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#indexOf(int,%20int)
找到第一个,用它作为寻找下一个,起泡,冲洗,重复的起点。
答案 1 :(得分:0)
尝试使用StringTokenizer在迭代每个字符串时按字符扫描char。
StringTokenizer s = new StringTokenizer("0101010111101");
ArrayList index = new ArrayList();
int count;
while(s.hasMoreTokens){
String num = s.nextToken();
if(num.equals("1")){
index.add(count);
}count++;
}