Java子字符串从右方向开始,直到指定字符
我想从输入字符串中选择特定的子字符串:Java子字符串从右方向开始,直到指定字符,java,string,substring,Java,String,Substring,我想从输入字符串中选择特定的子字符串: String i = "example/test/foo-foo"; int start = string.lastIndexOf('/'); Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null); 如何仅获取子字符串foo foo作为新字符
String i = "example/test/foo-foo";
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);
如何仅获取子字符串foo foo作为新字符串
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);
预期产出:
String newString = "foo-foo";
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);
最好的方法是通过一个实用类,因为我们可以用这种方法重用代码。此外,可以处理一些特殊情况以避免运行时异常
public class StringUtils {
public static final String EMPTY = "";
public static String substringAfterLast(String str, String separator) {
if (isEmpty(str)) {
return str;
}
if (isEmpty(separator)) {
return EMPTY;
}
int pos = str.lastIndexOf(separator);
if (pos == -1 || pos == (str.length() - separator.length())) {
return EMPTY;
}
return str.substring(pos + separator.length());
}
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
}
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);
然后使用
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);
字符串newString=StringUtils.substringAfterLasti,/ 解决这个问题有很多选择。例如,通过正则表达式搜索/替换或类String的子字符串方法
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);
正则表达式方法:
Optional<String> resultA = Optional.of(string.replaceAll("^.*/([^/]+)$", "$1"));
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);
子串方法:
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);
顺便说一句,stackoverflow上有很多更详细的解决方案,因此您最好进行彻底的stackoverflow搜索。您有没有看过String提供的方法?int index=i.lastIndexOf/;字符串名称=i.substringindex+1;字符串i=示例/test/foo-foo;字符串[]温度=i.split/;系统输出打印温度[温度长度-1];
int start = string.lastIndexOf('/');
Optional<String> resultB = Optional.of(start > 0 && start + 1 < string.length() ? string.substring(start) : null);