如何编辑结果字符串?

时间:2019-04-19 10:35:44

标签: java string

如果发生异常,我需要将生成的String切成另一种方法获得的值。

我有一个结果方法:

private String generateSomeName() {
        String basicProjectName = "Sth_" + method1();
        return basicProjectName + "_" + "X" ;
    }

    private String method1() {
        try {
            Class.getNumber();  //returns String1 
        } catch (Exception e) {
            log.warn("Unable to get this Number", e);
        }
        return "";            
    }

我的问题是,当一切正常时,我将获得字符串Sth_String1_X

的正确格式

但是如果有异常,我会得到空的字符串“”(没有String1),我的结果是:

Sth__X(带双_)

我需要这样:

Sth_X只有一个_

任何提示如何处理?

2 个答案:

答案 0 :(得分:1)

假设使用Java 8,则只有在结果不为null和非空的情况下,才可以使用Optional_方法返回的结果之前添加method1

private String generateSomeName() {
    String basicProjectName = "Sth" + Optional.ofNullable(method1())
                                              .filter(s -> s.length() > 0)
                                              .map(s -> "_" + s)
                                              .orElse("");
    return basicProjectName + "_X" ;
}

private String method1() {
    try {
        Class.getNumber();  //returns String1 
    } catch (Exception e) {
        log.warn("Unable to get this Number", e);
    }
    return "";            
}

答案 1 :(得分:1)

private String generateSomeName() {
        String basicProjectName = "Sth_" + method1();
        return basicProjectName + "X" ;
    }

    private String method1() {
        String output="";
        try {
            output=Class.getNumber()+"_";  //returns String1_ 
        } catch (Exception e) {
            System.out.println("Unable to get this Number "+e);
        }
        return output;            
    }