Java字符串操作

Java字符串操作,java,string,amazon-s3,Java,String,Amazon S3,在jsp表单中,用户输入报告文件URL,即。, 或 cdn.gs.com/live/reports/MVR_Q3_2009.pdf 但在提交表单时,java类(struts2操作)必须检查其是否为有效url,方法是将cdn.gs.com作为bucket名称,将/reports/MVR\u Q3\u 2009.pdf作为文件路径,然后在AWS s3 bucket中搜索 现在,我们从url获取文件路径,但是cdn.gs.com在签入S3之前是作为静态变量输入的 我们可以从URL中获取cdn.gs.c

在jsp表单中,用户输入报告文件URL,即。, 或 cdn.gs.com/live/reports/MVR_Q3_2009.pdf

但在提交表单时,java类(struts2操作)必须检查其是否为有效url,方法是将cdn.gs.com作为bucket名称,将/reports/MVR\u Q3\u 2009.pdf作为文件路径,然后在AWS s3 bucket中搜索

现在,我们从url获取文件路径,但是cdn.gs.com在签入S3之前是作为静态变量输入的

我们可以从URL中获取cdn.gs.com作为bucket\u名称(字符串变量)吗 或
cdn.gs.com/live/reports/MVR_Q3_2009.pdf

在查看org.apache.commons.StringUtils.java类后,我找到了一个解决方案 下面是解决我的问题的代码

公共布尔值isValidReportURL(字符串url){

url变量可以是

https://s3.amazonaws.com/cdn.gs.com/live/reports/MVR_Q3_2009.pdfcdn.gs.com/live/reports/MVR\u Q3\u 2009.pdf

    if (StringUtils.startsWith(url, "https://s3.amazonaws.com")) {
        bucketName = StringUtils.substringBetween(url, "com/", "/");
        filePath = StringUtils.substringAfter(url, bucketName).replaceFirst("/", "");

    } else {
        bucketName = StringUtils.split(url, "/")[0];
        filePath = (StringUtils.substringAfter(url, bucketName).replaceFirst("/", ""));
    }

    if (AWSFileUtil.doesFileExist(AWSConnectionUtil.getS3Object(null), bucketName,   
filePath)) {
        return true;
    }

    return false;
}