Java 如何使用or运算符组合两个字符串?

Java 如何使用or运算符组合两个字符串?,java,binary,Java,Binary,示例i将字符串转换为十进制“1”。是6位。我该怎么做?并使用或运算符字符串a和b 这是我的密码 String a="b5a99e49708ecf072f189b4f85007c76990ef305"; String b="a7d55b1a392a1f34ab95453817fdd49df140c486"; char[]c=a.toCharArray(); char[]d=b.toCharArray(); 对于(int i=0;i

示例i将字符串转换为十进制“1”。是6位。我该怎么做?并使用或运算符字符串a和b

这是我的密码

String a="b5a99e49708ecf072f189b4f85007c76990ef305";
String b="a7d55b1a392a1f34ab95453817fdd49df140c486";
char[]c=a.toCharArray();
char[]d=b.toCharArray();
对于(int i=0;i
您可以通过这种方式将这些十六进制值组合为字符串

char[] c = a.toCharArray();
char[] d = b.toCharArray();

for (int i = 0; i < str.length(); i++)
{
    r += Integer.toBinaryString(c[i]|d[i]);     
}
char[]c=a.toCharArray();
char[]d=b.toCharArray();
char[]r=新字符[Math.min(a.length,b.length)];
字符串hex=“0123456789abcdef”;
对于(int i=0;i
如果我理解正确,您只需要在二进制字符串中预先添加正确数量的零,这样总共有7位。生成少量固定数量的字符的标准技巧是对该字符的常量字符串使用
String.substring()
。由于
char
适合16位,因此我们永远不需要超过16个零:

char[] c = a.toCharArray();
char[] d = b.toCharArray();
char[] r = new char[Math.min(a.length, b.length)];
String hex = "0123456789abcdef";

for (int i = 0; i < r.length; i++) {
    int ci = Character.getNumericValue(c[i]);
    int di = Character.getNumericValue(d[i]);
    int ri = ci | di;
    r[i] = hex.charAt(ri);
}
String s = new String(r);
如果
ch
是持有
1
char
,则打印上述内容

    String binaryString = Integer.toBinaryString(ch);
    int missingZeroes = desiredNumberOfBits - binaryString.length();
    if (missingZeroes > 0) {
        binaryString = "0000000000000000".substring(0, missingZeroes) + binaryString;
    }
    System.out.println(binaryString);
如果您需要,您可以填写
c[i]|d[i]
而不是
ch


您可能需要添加一个防御性检查,以确保
Integer.tobinarysting()
中的字符串不太长。

您到底想实现什么?您希望得到什么结果?
char
是一种16位数据类型,因此对7位进行“操作”没有太大意义。我怀疑您主要是在问(例如,二进制字符串上有前导零)。这些字符串看起来像(长的)十六进制数。您想要这些数字的按位逻辑OR吗?字符1十进制49二进制110001 6位我需要011001
0110001