小弟刚上手JAVA,请教一下。
我使用Scanner来输入字符串,
然后我想用if语句来判断我输入的字符串是不是“EXIT”
但结果我输入EXIT,就是不执行if语句。
请教一下大家。
public class Libsys
{
public static void main(String arg[])
{
Scanner scan=new Scanner(System.in);
String sInput="",command="",sCom="EXIT";
do
{
System.out.println("Please input you command:");
sInput=scan.next();
command=sInput;
command.trim();
}while(command=="EXIT");
}
}
怎么也出不去这个循环。

解决方案 »

  1.   

    command.equals("EXIT")
    不要用==
      

  2.   

    不要用do--while
    用if 不就完了
    定义变量规范点
    不要都在一行
      

  3.   

    楼上的if语句怎么行啊,那楼主无论输入什么都直接退出了,还要EXIT干吗另外楼主的command.trim()根本就没起到作用,改成command = command.trim()
      

  4.   

    要用equals.
    String是非可变类.所以command.trim()产生了一个新对象.并没有修改了command.
      

  5.   

    ==继承自类,判断的是内存中的地址号,用equals,如果想用“==”,自己写zc重载函数
      

  6.   

    楼主要分清equals和==的区别.
    ==代表判断两个字符串的两个引用得值是否相等,而equals是判断两个对象的值是否相同.
    另外,command.trim();是要返回一个String对象.
      

  7.   

    这个不能用==去比较的,这是永远不等的,用equals去比较,他只比较值,而不比较地址
      

  8.   

    回复人: snruge123(狂热&冷静) ( ) 信誉:100  2005-09-15 09:38:00  得分: 0  
     
     
       这个不能用==去比较的,这是永远不等的,用equals去比较,他只比较值,而不比较地址
      
     ----------------------------------------------------------在Java虚拟机中对String有了特殊处理,只要是内容相等的字符串,那么会引用同一个地址,所以用等号判断也是可行的,不信你自己可以写个小程序看看