从索引中获取仅包含可用字符的子字符串

Get substring with only available chars from index

Java 中是否有任何字符串函数可以让我提取像 QString::mid:

这样的子字符串

http://doc.qt.io/qt-5/qstring.html#mid

当索引超过字符串长度时,我希望函数 return 空字符串,当索引+子字符串长度更大时,我希望函数 return 仅可用字符。

我已经写了一段代码来实现它,但我不相信 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中有这样的东西吗?

听起来你只需要Math.min几次:

int start = Math.min(index, s.length());
int end = Math.min(index + length, s.length());
return s.substring(start, end);

简短的回答是 Java 本身的字符串 class 上没有 mid 函数。

但是,Apache Commons StringUtils 库具有 mid 方法和其他字符串操作函数。熟悉所有 Apache 公共库是很有用的,因为它们被广泛使用、开源并且无需重新发明轮子。