我得到一个字符串,我必须检查它是否以SUCCESS
结尾。我得到的字符串是多行的,也就是说,它有\n
。如果以SUCCESS.
结尾,则必须返回true
,如果以FAILED.
结尾,则必须返回false
。但是
pValidationReport.endsWith("SUCCESS.")
即使false
以pValidationReport
结尾,也会评估为FAILED.
,如下所示:
方法如下:
private boolean isValidationSuccess(String pValidationReport)
{
if(pValidationReport.endsWith("SUCCESS."))
return true;
else if(pValidationReport.endsWith("FAILED."))
return false;
}
我缺少什么?
答案 0 :(得分:2)
首先修剪字符串然后chcek for endsWith()
pValidationReport.trim().endsWith("SUCCESS.")
Java String Trim方法是一种实例方法,用于从字符串的开头和结尾删除多余的空格。 String Trim方法用于字符串对象或文字。在Java中,字符串是不可变的,因此一旦创建它们,就无法修改内容。由于这个原因,结果将是一个新创建的字符串对象,字符串的两端都没有空格。 很明显,在修剪字符串后,它会返回一个新的字符串对象。当两侧没有空间修剪时,将返回String类型的同一对象而不是新对象。
如果参数表示的字符序列是此对象表示的字符序列的后缀,则此endsWith()方法返回true,否则返回false。
答案 1 :(得分:1)
如果您输入的字符串在您要搜索的子字符串后面有空白字符,则它将不匹配。您可以将正则表达式用于此目的:
struct S { public S value; }
\ s *确保即使后跟任意数量的空格,制表符,换行符,回车符,换页符和竖线符号,也会识别末尾的 SUCCESS。字符串标签。 也可以将Pattern移动到最终的实例变量,然后在方法中使用匹配器,保存对compile()的调用:
private boolean isValidationSuccess(String pValidationReport)
{
Pattern successPattern = Pattern.compile(".*SUCCESS\\.\\s*$");
return successPattern.matcher(pValidationReport).matches();
}