这是我的代码添加到二进制字符串,我得到正确的值res
字符串,但它仍然给我在执行结束时的异常。 字符串m1
& m2
长度相等,均为28。 尽管如此,我仍然试图运行循环10次来验证,但错误仍然存在。 对于任何值i
均适用,不管是大于还是小于两个字符串的实际长度。字符串索引越界
public static String addMantissa(String m1,String m2)
{
String res=" ";
int c=0;
System.out.println("Length is " + m2.length());
int i=0;
while(i < m2.length())
{
System.out.print(" " + res.charAt(i));
if(m1.charAt(i)=='1' && m2.charAt(i)=='1')
{
if(c==0)
{
res+="0";
c=1;
}
else
{
res+="1";
c=1;
}
}
if(m1.charAt(i)=='1' && m2.charAt(i)=='0')
{
if(c==0)
{
res+="1";
c=0;
}
else
{
res+="0";
c=1;
}
}
if(m1.charAt(i)=='0' && m2.charAt(i)=='1')
{
if(c==0)
{
res+="1";
c=0;
}
else
{
res+="0";
c=1;
}
}
if(m1.charAt(i)=='0' && m2.charAt(i)=='0')
{
if(c==0)
{
res+="0";
c=0;
}
else
{
res+="1";
c=0;
}
}
i++;
}
return res;
}
在此先感谢。
你可以发布你的实际错误和跟踪。 – TheMerovingian 2013-04-22 14:10:43
什么是输入(m1&m2)?? – 2013-04-22 14:16:27
如果你通过OR('||')分隔条件,或者更简单些,'m1.charAt(i)+ m2.charAt(i)==' 1'+'0'或m1.charAt(i) - '0'+ m2.charAt(i) - '0'== 1'。我会用临时变量替换这些charAt(用“0”减去)。 – Dukeling 2013-04-22 14:18:02