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