Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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中读取文件,等于不';行不通_Java_File_Equals - Fatal编程技术网

在JAVA中读取文件,等于不';行不通

在JAVA中读取文件,等于不';行不通,java,file,equals,Java,File,Equals,我有一个txt文件,我读了它。 它是这样说的: CONTRACT { CODE 1 SERVICE "Pro" NAMESURNAME "Takis Papadopoulos" PHONENUMBER 6980021739 DATE "19/3/2007" TYPE Internet DISCOUNT 10 MONTHLY_USAGE{ MB_USED 200 } } 我创建了一个BufferedReade

我有一个txt文件,我读了它。 它是这样说的:

CONTRACT
{
    CODE 1
    SERVICE "Pro"
    NAMESURNAME "Takis Papadopoulos"
    PHONENUMBER 6980021739
    DATE "19/3/2007"
    TYPE Internet
    DISCOUNT 10
    MONTHLY_USAGE{
        MB_USED 200
    }
}
我创建了一个BufferedReader,并使用line=read.readLine()方法。但问题是,当涉及到这段代码时:

if(line.trim().startsWith("SERVICE ")){                                    
    tmp_service = line.trim().substring(8);
    System.out.println(tmp_service);//Prints "Pro"

    if(tmp_service.equals("Pro")){
        System.out.println("1");//Never gets in
    }else if(tmp_service.equals("Internet Family")){
        System.out.println("2")
    }else{
        System.out.println("3");//Prints this
    }
    count++;
    System.out.println(tmp_service);//Prints "Pro"
}

它总是打印“3”,即使equals应该是“true”,它也不是。我还尝试了“startsWith()”,但它也不起作用。

您的文本中有引号,因此您需要将它们包含在支票中

 if(tmp_service.equals("\"Pro\"")){
在我看来,一个更好的解决方案是删除所有的“”,如果你希望出现很多情况,最好是概括你的案例

你尝试将“Pro”与“Pro”进行比较。别忘了转义引号

在Java中,转义字符是反斜杠(\)。

您的解决方案:
if(tmp\u service.equals(“\”Pro\”)

: 前跟反斜杠(\)的字符是转义序列,对编译器具有特殊意义。[…]当在打印语句中遇到转义序列时,编译器会相应地对其进行解释。例如,如果要在引号中加引号,则必须在内部引号中使用转义序列\“。 打印句子

She said "Hello!" to me.
你会写:


请提供详细信息,而不仅仅是片段。这样帮助你总是容易得多,而且这个问题对未来的读者更有价值。引导和不可见的空格呢?可能
tmp\u服务
包含
“Pro”
?如果格式始终相同,则可以使用regex或某个string.split,并且可以将所有这些转换为对象。甚至检查格式和设置默认值。现在它不打印任何内容:(抱歉,它不等于从它开始工作,非常感谢!
System.out.println("She said \"Hello!\" to me.");