我的代碼無法正常工作。這是我的計劃的最初部分。當我嘗試反轉字符串時發生主要錯誤。有人可以看看嗎?用字符串反轉二進制數字
爲了將二進制數轉換成小數,我必須得到反轉的字符串。
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);
}
哪部分不工作?是字符串顛倒不起作用? –
對不起,但這不是你問的。你做了什麼試圖解決它?你認爲哪部分代碼被破壞了?不要只是在這裏轉儲代碼,並說「我的代碼不工作」。另外,學習如何格式化代碼。這是不可讀的。 – garbagecollector
你應該嘗試使用自解釋變量名稱(提示:ia,ib,p,q,lchecka,lcheckb,adda,addb,ansa,ansb *不是*不言自明)。 – assylias