Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用junit比较字符串不需要';即使每个字符都已正确标识,也不能断言为true_Java_String_Junit - Fatal编程技术网

Java 使用junit比较字符串不需要';即使每个字符都已正确标识,也不能断言为true

Java 使用junit比较字符串不需要';即使每个字符都已正确标识,也不能断言为true,java,string,junit,Java,String,Junit,我不明白为什么我的单元测试失败了 assertTrue( (String) temp=="c+(d/f)-e"); 即使我连续打印temp的内容,也是一样的 这是密码 单元测试 import static org.junit.Assert.*; import org.junit.Test; public class LexerTest { @Test public void testGetInExpression(){ //------

我不明白为什么我的单元测试失败了

assertTrue( (String) temp=="c+(d/f)-e");
即使我连续打印temp的内容,也是一样的

这是密码

单元测试

import static org.junit.Assert.*;

import org.junit.Test;


public class LexerTest {


    @Test
    public void testGetInExpression(){
        //------
        Lexer lex=new Lexer("a+b*(c+(d/f)-e)-g");
        //--This test passes
        assertTrue((String)lex.getLexStr()=="a+b*(c+(d/f)-e)-g");
        //------

        for(int i=0;i<5;i++){
            lex.getNext();
        }

        //----------------
        //Method returns a in-expression (or a substring within first parantheses)
        Lexer sub=lex.getInExpression(); 
        String temp=sub.getLexStr(); //returns a type String
        System.out.println(temp);
        System.out.println(temp.length());

        //printing out each character of 'temp'
        for(int i=0;i<temp.length();i++){
            System.out.print(i);
            System.out.print(" = ");
            System.out.println(temp.charAt(i));
            //prints: the string 
            // 0 = c
            // 1 = +
            // ...
            // ..
            // 8 = e
        }

        //The following fails (mysteriously!!)
        assertTrue( (String) temp=="c+(d/f)-e");
        //assertTrue( (Character)lex.getNext()=='-');
    }
}
import static org.junit.Assert.*;
导入org.junit.Test;
公共类词汇测试{
@试验
public void testGetInExpression(){
//------
Lexer-lex=新的Lexer(“a+b*(c+(d/f)-e)-g”);
//--这个测试通过了
assertTrue((String)lex.getLexStr()=“a+b*(c+(d/f)-e)-g”);
//------

对于(int i=0;i您应该使用assertEquals,而不是assertTrue)。
与==进行比较对于不同的字符串对象不好。

您应该使用assertEquals,而不是assertTrue。
与==进行比较对于不同的字符串对象不好。

您应该使用assertEquals,而不是assertTrue。
与==进行比较对于不同的字符串对象不好。

您应该使用assertEquals,而不是assertTrue。 与==比较不适合不同的字符串对象。

在比较字符串时始终使用“等于”,而不是“==”

“==”比较引用,而“等于”比较值,这是您想要的。

在比较字符串时始终使用“等于”,而不是“==”

“==”比较引用,而“等于”比较值,这是您想要的。

在比较字符串时始终使用“等于”,而不是“==”

“==”比较引用,而“等于”比较值,这是您想要的。

在比较字符串时始终使用“等于”,而不是“==”


“==”比较引用,而“equals”则比较所需的值。

java中的
=
运算符检查两个对象(在本例中为字符串)是相同的引用。如果相等字符串的构造不同,则不能保证它们将占用相同的引用。相反,应使用
等于(对象)
方法

在JUnit中,这可以通过使用
assertEquals
方法轻松完成:

assertEquals("c+(d/f)-e", temp);

java中的
=
运算符检查两个对象(在本例中为-strings)是否是相同的引用。如果相等的字符串以不同的方式构造,则不能保证它们将占用相同的引用。相反,应使用
相等(Object)
方法

在JUnit中,这可以通过使用
assertEquals
方法轻松完成:

assertEquals("c+(d/f)-e", temp);

java中的
=
运算符检查两个对象(在本例中为-strings)是否是相同的引用。如果相等的字符串以不同的方式构造,则不能保证它们将占用相同的引用。相反,应使用
相等(Object)
方法

在JUnit中,这可以通过使用
assertEquals
方法轻松完成:

assertEquals("c+(d/f)-e", temp);

java中的
=
运算符检查两个对象(在本例中为-strings)是否是相同的引用。如果相等的字符串以不同的方式构造,则不能保证它们将占用相同的引用。相反,应使用
相等(Object)
方法

在JUnit中,这可以通过使用
assertEquals
方法轻松完成:

assertEquals("c+(d/f)-e", temp);

这很有效。非常感谢!那很有效。非常感谢!那很有效。非常感谢!那很有效。非常感谢!那也很有效。非常感谢!那也很有效。非常感谢!那也很有效。非常感谢!那也很有效。非常感谢!