Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java8样式更改substr功能_Java - Fatal编程技术网

使用Java8样式更改substr功能

使用Java8样式更改substr功能,java,Java,在下面的方法中,我读取发票id并删除前三个初始字符,然后在检查它是否包含美元后,我也删除它们。我的问题是,我是否可以在Java8中做同样的事情 public static String removID(String invoiceId) { String deviceSerialNo = null; if(invoiceId != null && invoiceId.length() == 15) { invoiceIdSerialNo = inv

在下面的方法中,我读取发票id并删除前三个初始字符,然后在检查它是否包含美元后,我也删除它们。我的问题是,我是否可以在Java8中做同样的事情

public static String removID(String invoiceId) {
    String deviceSerialNo = null;
    if(invoiceId != null && invoiceId.length() == 15) {
        invoiceIdSerialNo = invoiceId.substring(3);
        if(invoiceIdSerialNo.contains("$")) {
            invoiceIdSerialNo = invoiceIdSerialNo.replace("$", "");
        }
    }
    return invoiceIdSerialNo;

}
假设您在说“Java8风格”时是指“lambda表达式”,您可以使用

假设您在说“Java8风格”时是指“lambda表达式”,您可以使用


我不确定。您的问题是什么?“检查后,它包含连字符”,但代码是
包含(“$”
)。美元符号($)与连字符(-)不同。这在什么方面不是“Java8风格”?我不确定。您的问题是什么?“检查后,它包含连字符”,但代码是
包含(“$”
)。美元符号($)与连字符(-)不同。这在什么方面不是“Java8风格”?
public static String shrinkDeviceID(String deviceId) {
    return Optional.ofNullable(deviceId)
            .filter(s -> s.length() == 15)
            .map(s -> s.substring(3).replace("$", ""))
            .orElse(null);
}