Java 位掩码0b1解析回int

Java 位掩码0b1解析回int,java,bitmask,Java,Bitmask,在JavaSDK1.8中是否有方法将“0b1”之类的字符串解析回其整数值 我尝试了Integer.parseInt,但失败了 与此字符串相同的问题“0b1111_1101” 也许Eclipse.JDT中有某种东西可以将其作为java表达式进行评估 编辑: public static String simplerRewriteBitMask(String token) { String input = "0b1111_1111"; input = input.replace("0b

JavaSDK1.8中是否有方法将
“0b1”
之类的字符串解析回其整数值

我尝试了
Integer.parseInt
,但失败了

与此字符串相同的问题
“0b1111_1101”

也许Eclipse.JDT中有某种东西可以将其作为java表达式进行评估

编辑:

public static String simplerRewriteBitMask(String token) {
    String input = "0b1111_1111";
    input = input.replace("0b", "");
    input = input.replace("_", "");
    return Integer.toString(Integer.parseInt(input, 2));
}
为了给我提供更多关于我努力实现的内容的背景:
它涉及到对锐化(Java代码到C#的转换器)的修改,以便在有效的C#int声明中转换位掩码字符串声明(此位掩码符号仍然不由C#管理)。

一个简单的解决方案是去掉前缀
“0b”
,将任何
替换为
,然后使用
Integer.parseInt(n,2)
来获取
int
值。

一个简单的解决方案是去掉前缀
“0b”
,用
替换任何
,然后使用
Integer.parseInt(n,2)
获取
int
值。

我尝试了解决方案和我自己的解决方案,最后保留了我的解决方案,因为虽然不太复杂,但速度更快。然而,由于我对Java不是很在行,也许还有改进的余地

public static String simplerRewriteBitMask(String token) {
    String input = "0b1111_1111";
    input = input.replace("0b", "");
    input = input.replace("_", "");
    return Integer.toString(Integer.parseInt(input, 2));
}
我的解决方案(有改进)

私有静态字符串重写位掩码(字符串令牌){
int结果=0;
对于(int i=2;i

public static String simplerRewriteBitMask(String token) {
    String input = "0b1111_1111";
    input = input.replace("0b", "");
    input = input.replace("_", "");
    return Integer.toString(Integer.parseInt(input, 2));
}
我的解决方案(有改进)

私有静态字符串重写位掩码(字符串令牌){
int结果=0;
对于(int i=2;iresult=result-upposted,因为不带替换的解决方案是一个好主意,尽管改进总是可能的。较新的java:
Integer.parseUnsignedInt
有助于“unsigned”高于Integer.MAX_值的值。
Upvoted,因为不带替换的解决方案是一个好主意,尽管改进总是可能的。较新的java:
Integer.parseUnsignedInt
有助于高于Integer.MAX_值的“unsigned”值。