Java 将字符串二进制转换为整数

Java 将字符串二进制转换为整数,java,Java,如果不使用乘法、除法或mod,我如何做到这一点 我带来了解决方案,但它需要乘法运算 public StringBToInt(String b) { int value = 0; for(int z = 0; z < b.length(); z++) { value = value * 2 + (int)b.charAt(i) - 48; } } 公共字符串点(字符串b){ int值=0; 对于(intz=0;z

如果不使用乘法、除法或mod,我如何做到这一点

我带来了解决方案,但它需要乘法运算

public StringBToInt(String b) {
    int value = 0;
    for(int z = 0; z < b.length(); z++) {
        value = value * 2 + (int)b.charAt(i) - 48;
    }
}
公共字符串点(字符串b){
int值=0;
对于(intz=0;z

编辑:对不起!只允许使用3个java API。length()、charAt()和equals()

使用
Integer.valueOf(String,int)
方法:

Integer.valueOf('10101',2)

使用
Integer.valueOf(String,int)
方法:

Integer.valueOf('10101',2)

尝试像这样使用
Integer.parseInt(..)

  int value = Integer.parseInt(b, 2);

当然
b
是一个二进制字符串

试着像这样使用
Integer.parseInt(..)

  int value = Integer.parseInt(b, 2);

当然
b
是一个二进制字符串

如果不使用乘法,请使用按位移位运算符:

public StringBToInt(String b) {
    int value = 0;
    for(int z = 0; z < b.length(); z++) {
        if(b.charAt(z) == '1'){
            shift = b.length()-z-1;
            value += (1 << shift);
        }
    }
}
公共字符串点(字符串b){
int值=0;
对于(intz=0;z值+=(1不带乘法,使用位移位运算符:

public StringBToInt(String b) {
    int value = 0;
    for(int z = 0; z < b.length(); z++) {
        if(b.charAt(z) == '1'){
            shift = b.length()-z-1;
            value += (1 << shift);
        }
    }
}
公共字符串点(字符串b){
int值=0;
对于(intz=0;zvalue+=(1您可以使用方法
Integer.parseInt
来执行此操作

String binary = "101010"
int value = Integer.parseInt(binary, 2);

Integer.parseInt
中的“2”表示解析基2中的
字符串。

您可以使用
Integer.parseInt
方法来完成此操作

String binary = "101010"
int value = Integer.parseInt(binary, 2);

Integer.parseInt
中的“2”意味着解析基2中的
字符串。

这个家庭作业问题显然需要加法。你能使用
数组或
列表吗?输入的
字符串是否为固定长度?是的,它允许加法和减法。不,你不能使用数组或列表。只能使用整数和字符串使用charAt()、length()和equals。那么输入长度呢?它是固定的输入长度,是在一个范围内有变化,还是可能无限长?它是固定的长度。例如(“1111”=>15)这个家庭作业问题显然需要加法。您可以使用
数组
列表
?输入的
字符串
是固定长度吗?是的,它允许加法和减法。否,您不能使用数组或列表。只能使用带charAt(),length()的整数和字符串输入长度呢?是固定的输入长度,是在一个范围内有变化,还是可能无限长?它是一个固定的长度。例如(“1111”=>15)
if(b.charAt(z).equals('1')){
缺少右括号且不起作用-基元类型
char
没有
equals
方法!
if(b.charAt(z).equals('1'){
缺少右括号且不起作用-基元类型
char
没有
equals
方法!
b.tocharray()[i]
b.charAt(i)
b.toCharArray()[i]
b.charAt(i)