Java中是否有任何字符串函数可以提取像QString :: mid这样的子字符串:
http://doc.qt.io/qt-5/qstring.html#mid
当索引超过字符串长度时,我希望函数返回空字符串,当索引+子字符串的长度更大时,我希望函数只返回可用的字符。
我已经编写了一段代码,但是我拒绝相信这种功能已经不在Java中了:
private static String Mid(String s, int index, int length){
if(s.length()>=length+index){
return s.substring(index, length+index);
}
else if(s.length()>=index) {
return s.substring(index, s.length());
}
else{
return "";
}
}
Java中有这样的东西吗?
答案 0 :(得分:4)
听起来你只需要Math.min
几次:
int start = Math.min(index, s.length());
int end = Math.min(index + length, s.length());
return s.substring(start, end);
答案 1 :(得分:2)
简短的回答是Java本身的String类中没有mid函数。
但是,Apache Commons StringUtils库具有mid方法和其他String操作函数。熟悉所有Apache公共库是很有用的,因为它们被广泛使用,开源并且不必重新发明轮子。