程序的大致思想是这样的:主函数输入字符串"2007",调用fangfa(),定义了一个CH[]数组,将"2007"拆分给给数组.最后判断该字符不为0就输出.
但每次都将"2007"都输出来,IF判断根本没用.但程序又没错.为什么啊?
public class Money 
{
private static char mm; public static String fangfa(String money)       
{
String[] ch=new String[4];

for(int i=0;i<money.length();i++)                   
{   
char mm=money.charAt((money.length()-1)-i);
ch[i]=String.valueOf(mm);   
}
                                  
for(int j=0;j<money.length();j++)
{
if(ch[j] != "0")          
System.out.println(ch[j]); }
return money;
}
  public static void main(String args[])
{
String in="2007";
String end=fangfa(in);
}

解决方案 »

  1.   

    用!(String.equals("0"))当作判断条件试试
      

  2.   

    public class Money 
    {
    private static char mm; public static String fangfa(String money)       
    {
    String[] ch=new String[4];

    for(int i=0;i<money.length();i++)                   
    {   
    char mm=money.charAt((money.length()-1)-i);
    ch[i]=String.valueOf(mm);   
    }
                                      
    for(int j=0;j<money.length();j++)
    {
    if(!ch[j].equals ("0"))          //使用equals()比较内容
    System.out.println(ch[j]); }
    return money;
    }
      public static void main(String args[])
    {
    String in="2007";
    String end=fangfa(in);
    }
    }
      

  3.   

    注意 String,Arrary,class 是传地址的,其他的如int,char,long...基本数据类型是传值的,特别是经常使用的String,要特别注意,在使用判别符==,!=等的时候,比较的是两个字符串的地址,还有赋值的时候(=)也是将右边的地址给左边的.
      

  4.   

    或者更改为以下内容:
    String STR="0";//在第2个FOR的前面
    ch[j].charAt(0)!= STR.charAt(0) //将它换掉原来的判断语句