仅使用索引中的可用字符获取子字符串

时间:2015-04-12 20:10:13

标签: java string substring

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中有这样的东西吗?

2 个答案:

答案 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公共库是很有用的,因为它们被广泛使用,开源并且不必重新发明轮子。