为什么这个IF判断总是出错?

honey_tangyuan 2007-09-20 06:24:53
程序的大致思想是这样的:主函数输入字符串"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);
}
...全文
222 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JAVA_CAZY 2007-09-21
  • 打赏
  • 举报
回复
呵呵 不用 大家一起进步嘛~~
honey_tangyuan 2007-09-20
  • 打赏
  • 举报
回复
原来是这样啊.太谢谢了!
JAVA_CAZY 2007-09-20
  • 打赏
  • 举报
回复
或者更改为以下内容:
String STR="0";//在第2个FOR的前面
ch[j].charAt(0)!= STR.charAt(0) //将它换掉原来的判断语句
JAVA_CAZY 2007-09-20
  • 打赏
  • 举报
回复
注意 String,Arrary,class 是传地址的,其他的如int,char,long...基本数据类型是传值的,特别是经常使用的String,要特别注意,在使用判别符==,!=等的时候,比较的是两个字符串的地址,还有赋值的时候(=)也是将右边的地址给左边的.
JAVA_CAZY 2007-09-20
  • 打赏
  • 举报
回复
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);
}
}
shibazhishi 2007-09-20
  • 打赏
  • 举报
回复
用!(String.equals("0"))当作判断条件试试

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧