日期:2014-05-20  浏览次数:20774 次

为什么这个IF判断总是出错?
程序的大致思想是这样的:主函数输入字符串 "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);
}

------解决方案--------------------
用!(String.equals( "0 "))当作判断条件试试
------解决方案--------------------
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);
}
}