public class TestStr
{
public static void main(String args[])
{
long s1=1234567890123456l;
long s2=0000000001111001l;
String it1=String.valueOf(s1);
String it2=String.valueOf(s2);
char[] ch1=it1.toCharArray();
char[] ch2=it2.toCharArray();
StringBuffer s=new StringBuffer();
for(int i=0;i<ch1.length;i++)
{
if((ch1[i]!='0')&&(ch2[i]!='0'))
{
s.append(ch1[i]);
}
}
System.out.println(s);
}
}
ch2.length = 6;两个都不一样长度,是否?lz好运~
long s2 = 0000000001111001l;
String it2 = String.valueOf(s2);
原因是s2以0开头,java认为它是八进制数字,所以valueOf以后就是299521(十进制)
因此ch2.length==6,程序运行到i=6的时候就会出错。
long s2=0000000001111001l;
你把两个的长度打印出来检查一下就可以了
肯定是这的问题啊