我有一个txt文件,我读了它.这就是它所说的:
CONTRACT
{
CODE 1
SERVICE "Pro"
NAMESURNAME "Takis Papadopoulos"
PHONENUMBER 6980021739
DATE "19/3/2007"
TYPE Internet
DISCOUNT 10
MONTHLY_USAGE{
MB_USED 200
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个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"
}
Run Code Online (Sandbox Code Playgroud)
它总是打印"3",即使equals应该是"true",它也不是.我也试过"startsWith()",但它也不起作用.
您的文字中有引文,因此您需要将它们包含在支票中
if(tmp_service.equals("\"Pro\"")){
Run Code Online (Sandbox Code Playgroud)
在我看来,一个更好的解决方案是删除所有''',如果你期望有很多事件,它总是更好地推广你的案例