2015-04-12 58 views
1

只可用字符串是否有在Java中的任何字符串函數,讓我來提取喜歡的QString ::中旬子:獲得來自指數

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中?

回答

4

這聽起來像你只需要Math.min幾次:

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

雖然我喜歡這種方法,但它會允許'start'和'end'結束字符串負邊界。但是由於OP也沒有處理這種情況,它比原來的方法更好。 'index = Math.max(index,0);長度= Math.max(長度,0);'可以處理這個,但也許你會找出更清潔的東西。 – Pshemo

2

簡短的回答是,有關於Java本身String類沒有中旬功能。

但是,Apache Commons StringUtils庫有mid方法和其他字符串操作函數。熟悉所有Apache commons庫是非常有用的,因爲它們被廣泛使用,開源並且不必重新開發。