Java 用字符串反转二进制数
我的代码不起作用。这是我计划的最初部分。主要错误发生在我尝试反转字符串时。有人能看看吗 为了把二进制数转换成十进制数,我必须把字符串倒过来Java 用字符串反转二进制数,java,binary,Java,Binary,我的代码不起作用。这是我计划的最初部分。主要错误发生在我尝试反转字符串时。有人能看看吗 为了把二进制数转换成十进制数,我必须把字符串倒过来 String checka, checkb; checka = txt1.getText(); checkb = txt2.getText(); int lchecka = checka.length(); int lcheckb = checkb.length(); int ia, ib, p = 1, q = 1; for
String checka, checkb;
checka = txt1.getText();
checkb = txt2.getText();
int lchecka = checka.length();
int lcheckb = checkb.length();
int ia, ib, p = 1, q = 1;
for (ia = 0; ia < lchecka; ia++)
{
if (checka.charAt(ia) == '1' || checka.charAt(ia) == '0')
{
p = 1;
}
else
{
p = 0;
break;
}
}
for (ib = 0; ib < lcheckb; ib++)
{
if (checkb.charAt(ib) == '1' || checkb.charAt(ib) == '0')
{
q = 1;
}
else
{
q = 0;
break;
}
}
double adda = 0, addb = 0, ansa = 0, ansb = 0;
int inta, intb;
inta = Integer.parseInt(txt1.getText());
intb = Integer.parseInt(txt2.getText());
if (p == 1 && q == 1)
{
String checkka;
checkka = txt1.getText();
String checkkb;
checkkb = txt2.getText();
int lcheckka = checkka.length();
int lcheckkb = checkkb.length();
Character oa, ob;
int ra, rb;
String reva, revb;
oa = checkka.charAt(lcheckka - 1);
reva = oa + "";
ob = checkkb.charAt(lcheckkb - 1);
revb = ob + "";
oa = checkka.charAt(lcheckka - 2);
reva = reva.substring(0) + oa;
ob = checkkb.charAt(lcheckkb - 2);
revb = revb.substring(0) + ob;
for (ra = lcheckka - 3; ra >= 0; ra--)
{
oa = checkka.charAt(ra);
reva = reva.substring(0, ra - 1) + oa;
}
for (rb = lcheckkb - 3; rb >= 0; rb--)
{
ob = checkkb.charAt(rb);
revb = revb.substring(0, rb - 1) + ob;
}
System.out.println(reva);
System.out.println(revb);
}
字符串检查a,检查b;
checka=txt1.getText();
checkb=txt2.getText();
int lchecka=checka.length();
int lcheckb=checkb.length();
intia,ib,p=1,q=1;
对于(ia=0;ia=0;ra--)
{
oa=校验卡字符(ra);
reva=reva.子串(0,ra-1)+oa;
}
对于(rb=lcheckkb-3;rb>=0;rb--)
{
ob=校验kb.字符(rb);
revb=revb.子串(0,rb-1)+ob;
}
系统输出打印项次(reva);
系统输出打印项次(revb);
}
无需查看代码,您就可以轻松地反转如下字符串:
String reverse(String input) {
return new StringBuilder(input).reverse().toString();
}
例如看一看 同时您可以看到以下代码:
public String reverseString(String str) {
int i, len = str.length();
StringBuffer dest = new StringBuffer(len);
for (i = (len - 1); i >= 0; i--)
dest.append(source.charAt(i));
return dest.toString();
}
或者最好的方法是:
String str = // your string
String reverse = new StringBuilder(str ).reverse().toString();
首先,你的代码是混乱的。由于尝试将二进制数转换为十进制数,因此出现NumberFormatException:
inta = Integer.parseInt(txt1.getText());
intb = Integer.parseInt(txt2.getText());
使用该方法反转上面提到的字符串,然后使用您自己的方法将其转换为十进制,最后您将能够使用Integer.parseInt。哪个部分不起作用?是字符串反转不起作用吗?对不起,这不是你问的问题。你做了什么来修复它?你认为代码的哪一部分被破坏了?不要把代码放在这里,然后说“我的代码不工作”。另外,学习如何格式化代码。这是不可读的。您应该尝试使用自解释变量名(提示:ia、ib、p、q、lchecka、lcheckb、adda、addb、ansa、ansb不是自解释的)虽然这可能是家庭作业,应该手动进行反转。ansb代表答案b n耶,是的,所有这些都使得这很匆忙。你能给我一个代码来反转以字符串形式出现的二进制no吗?我不知道如何使用上面给出的字符串生成器编码不,我可以任意反转它。可以完成吗自动但我不是很有经验知道怎么做automatically@user2568906:查看有关如何调用方法的教程。我发布的代码是一种方法。对于Inonvenence的家伙们,很抱歉……非常感谢:)