Java 如何使用or运算符组合两个字符串?
示例i将字符串转换为十进制“1”。是6位。我该怎么做?并使用或运算符字符串a和b 这是我的密码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
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