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);
}
}

解决方案 »

  1.   

    ch1.length = 16;
    ch2.length = 6;两个都不一样长度,是否?lz好运~
      

  2.   

    问题就在:
    long s2 = 0000000001111001l;
    String it2 = String.valueOf(s2);
    原因是s2以0开头,java认为它是八进制数字,所以valueOf以后就是299521(十进制)
    因此ch2.length==6,程序运行到i=6的时候就会出错。
      

  3.   

    long常量请用L结尾,避免看错。
      

  4.   

    long    s1=1234567890123456l;
    long    s2=0000000001111001l;
    你把两个的长度打印出来检查一下就可以了
    肯定是这的问题啊