Java 在循环中查找字符串的索引
我正在尝试创建一个程序,它将返回一个分解为二次幂的特定数字。例如,45将显示为“2^5+2^3+2^2+2^0”,为此,我将数字转换为基数2,并将其转换为字符串,以便找到索引并获得所需的结果。但是当试图返回索引时,我得到的只是找到的第一个索引。有人能帮我做这个零件吗Java 在循环中查找字符串的索引,java,Java,我正在尝试创建一个程序,它将返回一个分解为二次幂的特定数字。例如,45将显示为“2^5+2^3+2^2+2^0”,为此,我将数字转换为基数2,并将其转换为字符串,以便找到索引并获得所需的结果。但是当试图返回索引时,我得到的只是找到的第一个索引。有人能帮我做这个零件吗 import java.util.*; public class prog{ public static void main(String[] args){ Scanner keyb = new Sc
import java.util.*;
public class prog{
public static void main(String[] args){
Scanner keyb = new Scanner(System.in);
int val;
System.out.println("Valor");
val = keyb.nextInt();
int aux = val;
while (aux > 0 ){
int num = aux % 2;
aux /= 2;
String dig = String.valueOf(num);
String find = "1";
int index = dig.indexOf(find);
while (index >= 0) {
System.out.println(index);
index = dig.indexOf(find, index + 1);
}
}
}
您的字符串
dig
包含“0”或“1”
您希望这样做:
int power = 0;
while (aux > 0 ) {
int num = aux % 2;
if (num == 1) {
// Print next term
}
power++;
aux /= 2;
}
还请注意,此算法将以与您的规范相反的顺序打印术语。您的字符串
dig
包含“0”或“1”
您希望这样做:
int power = 0;
while (aux > 0 ) {
int num = aux % 2;
if (num == 1) {
// Print next term
}
power++;
aux /= 2;
}
还请注意,此算法将以与您的规范相反的顺序打印术语。[Integer.tobinarysting()
]([Integer.toBinaryString()
](