2012-05-03 42 views
7

Tôi muốn trích xuất bất kỳ từ nào ngay sau ký tự # trong một String và lưu trữ chúng trong một mảng String[].Trích xuất thẻ băm từ chuỗi

Ví dụ, nếu đây là String ...

"Array is the most #important thing in any programming #language" 

Sau đó, tôi muốn trích xuất các từ sau thành một mảng String[] ...

"important" 
"language" 

Có thể ai đó xin vui lòng cung cấp gợi ý của tôi cho đạt được điều này.

+3

[Bạn đã thử gì?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) – user1329572

+4

Điều này có nên được gắn thẻ là #homework không? –

Trả lời

19

thử này -

String str="#important thing in #any programming #7 #& "; 
Pattern MY_PATTERN = Pattern.compile("#(\\S+)"); 
Matcher mat = MY_PATTERN.matcher(str); 
List<String> strs=new ArrayList<String>(); 
while (mat.find()) { 
    //System.out.println(mat.group(1)); 
    strs.add(mat.group(1)); 
} 

ra đặt -

important 
any 
7 
& 
+0

Làm thế nào tôi có thể trích xuất các từ này thành một mảng String []? – baraaalsafty

+1

@baraaalsafty - mã được cập nhật (sử dụng Danh sách thay vì Mảng) –

+0

Đúng vậy cảm ơn bạn – baraaalsafty

5

Hãy thử biểu thức chính quy này

#\w+ 
12
String str = "Array is the most #important thing in any programming #language"; 
Pattern MY_PATTERN = Pattern.compile("#(\\w+)"); 
Matcher mat = MY_PATTERN.matcher(str); 
while (mat.find()) { 
     System.out.println(mat.group(1)); 
} 

Các regex sử dụng là:

#  - A literal # 
(  - Start of capture group 
    \\w+ - One or more word characters 
)  - End of capture group 
+0

Cảm ơn bạn rất nhiều – baraaalsafty

+0

Làm thế nào tôi có thể trích xuất các từ này thành một mảng String []? – baraaalsafty

Các vấn đề liên quan