2011-03-07 95 views
0

比方說,我有以下文本字符串:解析信息從一個字符串中的Java中心

「第一:中心:最後一個」

我想只提取此字符串從「中心」 。但是,我不知道在字符串的開始,結尾或中心會是什麼。我所知道的是,冒號將分開三個字符串,我需要的字符串是冒號之間的部分。

使用Java,我可以完成這項任務的最簡潔的方法是什麼?

非常感謝您的時間。

回答

1

由於您只想中心,您可以執行使用相應的指數的子字符串。這將比split()方法更有效,因爲您將創建更少的字符串和數組實例。

public class Main { 

    public static void main(String[] args) { 
     String fullStr = "first:center:last"; 
     int firstColonIndex = fullStr.indexOf(':'); 
     int secondColonIndex = fullStr.indexOf(':', firstColonIndex + 1); 
     String centerStr = fullStr.substring(firstColonIndex + 1, secondColonIndex); 
     System.out.println("centerStr = " + centerStr); 
    } 
} 
+0

這3襯墊的我在2號線做了... ...到底能做到這一點的1個太行...大聲笑 – 2011-03-07 18:11:32

+0

是的,但它避免使用split();) – shams 2011-03-07 18:57:48

0

按道理,我會去(此效果):

String[] splits = string.split(":"); 
String centerStr = splits[1]; 
0
try{ 
    String str="first:center:last"; 
    String result = str.split(":")[1]; 
}catch(ArrayIndexOutOfBounds aex){ 
    //handle this scenario in your way 
} 
1

基於非正則表達式的解決方案,我相信是最快的:

String string = "left:center:right"; 
String center = string.substring(string.indexOf(':') + 1, string.lastIndexOf(':'))