2012-09-25 104 views
1

我想從一個完整的單詞中得到字符串的特定部分。如何在java中獲取字符串的特定部分?

例如:

我有以下字符串。

# STRING_VALUES # 

和句子如下

<p># STRING_VALUE #<br /># CMESSAGE #<br /># CUSTOMERADDRESS #<br /><br /></p> 

從上面的,我想要得到的字符串,如下所示:

STRING_VALUES 
CMESSAGE 
CUSTOMERADDRESS 

怎麼做才能得到上面的字符串?我堅持這一點。

+3

你嘗試過什麼?你有沒有讀過[類String的javadoc](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html)? –

+1

它們是否都被一對#符號包圍?你有什麼嘗試? – bdares

+1

字符串函數在java中可用。 chk it .. http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html – Hybridzz

回答

0

你可以用正則表達式來做到這一點。見類PatternMatcher。正則表達式來查找您的示例STRING_VALUE的字符串將是:

#\s(\w*)\s# 

這將返回的文字字符鏈(字母,數字和下劃線)之後,「#」和一個空格和一個空格與之前的「 #」。單詞字符鏈將作爲可以分別提取的子匹配返回。

或者,您可以使用String.indexOf來搜索字符串中的分隔符的位置,然後使用String.substring來提取您找到的分隔符位置之間的部分。

0

您使用String類的String[] split(String regex)方法記錄here

+0

忘記超鏈接回答中的某些內容? – Vikdor

2

針對您的特殊情況下,下面的代碼將工作:

String str = "# STRING_VALUES #"; 
String result = str.substring(2,str.length()-2); 

UPDATE:(下面的代碼將努力爲您修改輸入的字符串)

String str = "<p># STRING_VALUE #<br /># CMESSAGE #<br /># CUSTOMERADDRESS #<br /><br /></p>"; 

String[] tokens = str.substring(3, str.length()-4).split("<br />"); 
// tokens will contain [0] = "# STRING_VALUE #" 
//      [1] = "# CMESSAGE #" 
//      [2] = "# CUSTOMERADDRESS #" 
//      [3] = "" 

ArrayList<String> results = new ArrayList<String>(); 

for(String token : tokens) 
{ 
    if(token.length() != 0) 
    { 
     results.add(token.substring(2,str.length()-2)); 
    } 
} 

// results has required strings 
for(String result : results) 
{ 
    System.out.println(result); 
} 
+0

ok.but但我有相同的字符串的集合。那種情況呢? –

+0

更新的答案是否解決了問題? – Azodious

0

如果字符串將這種格式的即空間可以使用String.split()

String ss ="# STRING_VALUES #"; 
    System.out.println(ss.split("\\s")[1]); 

個上面的代碼返回STRING_VALUES作爲輸出

+0

我不會使用正則表達式來處理這麼簡單的任務 –

4

split使用:

String ss ="# STRING_VALUES #"; 
String[] parts = ss.split("#"); 
System.out.println(parts[1].trim()); // STRING_VALUES 

DEMO

+0

感謝您的回覆。它正在部分工作。它顯示
。如何刪除。 –

相關問題