gpt4 book ai didi

java - 在循环中查找字符串的索引

转载 作者:行者123 更新时间:2023-11-29 09:18:12 24 4
gpt4 key购买 nike

我正在尝试创建一个程序,该程序将返回分解为 2 的幂的特定数字。例如 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 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”。

String dig = String.valueOf(num);

你想要这个:

 int power = 0;
while (aux > 0 ) {
int num = aux % 2;
if (num == 1) {
// Print next term
}
power++;
aux /= 2;
}

另请注意,与您的指定相比,此算法将以相反的顺序打印术语。

关于java - 在循环中查找字符串的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8107555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com