确保字符串中的\ n以特定字符串结尾

时间:2015-12-11 11:37:42

标签: java string

我得到一个字符串,我必须检查它是否以SUCCESS结尾。我得到的字符串是多行的,也就是说,它有\n。如果以SUCCESS.结尾,则必须返回true,如果以FAILED.结尾,则必须返回false。但是

pValidationReport.endsWith("SUCCESS.")
即使falsepValidationReport结尾,

也会评估为FAILED.,如下所示:

enter image description here

方法如下:

private boolean isValidationSuccess(String pValidationReport)
{
    if(pValidationReport.endsWith("SUCCESS."))
        return true;
    else if(pValidationReport.endsWith("FAILED."))
        return false;
}   

我缺少什么?

2 个答案:

答案 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();
}