Java if语句中的问题
我有一些麻烦,使条件与或。 看看我的问题。如果我这样做,它的工作:Java if语句中的问题,java,if-statement,logical-operators,randomaccessfile,Java,If Statement,Logical Operators,Randomaccessfile,我有一些麻烦,使条件与或。 看看我的问题。如果我这样做,它的工作: System.out.println(p_fileAccess.readLine().trim().startsWith("^ Item Type")); //这是真的但如果我这么做 System.out.println("data :"+(p_fileAccess.readLine().trim().startsWith("* Item Type")||p_fileAccess.readLine().trim().star
System.out.println(p_fileAccess.readLine().trim().startsWith("^ Item Type"));
//这是真的但如果我这么做
System.out.println("data :"+(p_fileAccess.readLine().trim().startsWith("* Item Type")||p_fileAccess.readLine().trim().startsWith("^ Item Type ")));
这是假的
你能帮我吗?第一个条件读第1行,第二个条件读第2行 试试这个:
String line = p_fileAccess.readLine().trim();
System.out.println("data:" + (line.startsWith("* Item Type") || line.startsWith("^ Item Type ")));
第一个条件读取第1行,第二部分再次读取(第2行) 试试这个:
String line = p_fileAccess.readLine().trim();
System.out.println("data:" + (line.startsWith("* Item Type") || line.startsWith("^ Item Type ")));
假设p_fileAccess是一个缓冲读取器或类似的读取器,那么第二行代码将查看文件中的两行不同的代码。第一个不以“*项目类型”开头,第二个不以“^Item类型”开头 假设p_fileAccess是一个缓冲读取器或类似的读取器,那么第二行代码将查看文件中的两行不同的代码。第一个不以“*项目类型”开头,第二个不以“^Item类型”开头
startsWith(“^Item Type”)
中有一个空格,我假设p\u fileAccess.readLine().trim().startsWith(“^Item Type”)
返回一个字符串,否则您将无法将其与另一个字符串连接。因此,您正在应用或到字符串,这是完全错误的。这是相同的问题p_fileAccess.readLine().trim().StartWith(“^Item Type”)不返回布尔值?在StartWith(“^Item Type”)
中有一个空格,我假设p_fileAccess.readLine().trim().StartWith(“^Item Type”)
返回一个字符串,否则您将无法将其与另一个字符串连接。因此,您正在应用或到字符串,这是完全错误的。这是同样的问题。readLine().trim().startsWith(“^Item Type”)不返回布尔值?正如我在给OP的注释中所写的那样:startsWith(“^Item Type”)
中有一个空格,因此第二部分永远不会是真的(由于trim
)你是真实的god@StefanWarminski,文件的格式可以是^Item Type type1^ Item Type type2*Item Type type3,这样就可以了。问题在于比较不同的线条。@BorLaze好的,明白了。但如果行
为“^Item Type”,则仍将返回false
。OP的第一个语句将返回true
,而您的解决方案不会返回。@StefanWarminski,我想您会认为,.startFrom()使用regex,比如.replaceAll()。不,它使用纯字符串(不将其视为正则表达式)。正如我在给OP的评论中所写的那样:startsWith(“^Item Type”)
中有一个空格,因此第二部分永远不会是真的(由于trim
),你才是真的god@StefanWarminski,文件的格式可以是^Item Type type1^ Item Type type2*Item Type type3,这样就可以了。问题在于比较不同的线条。@BorLaze好的,明白了。但如果行
为“^Item Type”,则仍将返回false
。OP的第一个语句将返回true
,而您的解决方案不会返回。@StefanWarminski,我想您会认为,.startFrom()使用regex,比如.replaceAll()。不,它使用纯字符串(不将其视为正则表达式)。