2012-01-25 42 views
4

我需要一段代碼,通過它我可以從Java中的字符串中提取大寫字母的子字符串。 例如:如何從Java中的字符串中提取大寫字母串?

"a:[AAAA|0.1;BBBBBBB|-1.90824;CC|0.0]" 

我需要提取CCBBBBBBBAAAA

+4

這是[正則表達式]工作(http://docs.oracle。 COM/JavaSE的/教程/本質/正則表達式/)。 – Jesper

回答

6

你可以用String[] split(String regex)做到這一點。唯一的問題可能是空字符串,但它很容易將它們過濾出來:

String str = "a:[AAAA|0.1;BBBBBBB|-1.90824;CC|0.0]"; 
String[] substrings = str.split("[^A-Z]+"); 
for (String s : substrings) 
{ 
    if (!s.isEmpty()) 
    { 
     System.out.println(s); 
    } 
} 

輸出:

AAAA 
BBBBBBB 
CC 
4

這應該證明正確的語法和方法。更多詳細信息可以在這裏找到http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.htmlhttp://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Matcher.html

String myStr = "a:[AAAA|0.1;BBBBBBB|-1.90824;CC|0.0]"; 
Pattern upperCase = Pattern.compile("[A-Z]+"); 
Matcher matcher = upperCase.matcher(myStr); 
List<String> results = new ArrayList<String>(); 

while (matcher.find()) { 
    results.add(matcher.group()); 
} 

for (String s : results) { 
    System.out.println(s); 
} 

[A-Z]+部分是正則表達式,做了大部分工作。如果你想更多地瞭解它,有很多強大的正則表達式教程。

0

如果你只想提取所有大寫字母使用[A-Z]+,如果你只想大寫子,也就是說如果你有小寫字母,你不需要它(HELLO是好,但Hello不是),然後使用\b[A-Z]+\b

+0

\ b是什麼? – Hossein

+1

字邊界 - 你可以閱讀更多關於它[這裏](http://www.regular-expressions.info/wordboundaries.html) – apines

+0

實際上,使用正則表達式的方式是「\\ b [^ AZ] + \\ b「,而」JOHN DOE是一個名字「的輸出是JOHN DOE在Java中使用string.split – exilonX

0

我認爲你應該做一個替換所有的正則表達式把你不想成爲一個分隔符的字符,或許是這樣的:

  1. str.replaceAll(「[^ AZ] +」,「 「)
  2. 修剪任何引導ng或尾隨空格。
  3. 然後,如果你願意,你可以調用str.split(」「)
0

這可能是你在找什麼:

import java.util.regex.Pattern; 
import java.util.regex.Matcher; 

public class MatcherDemo { 

    private static final String REGEX = "[A-Z]+"; 
    private static final String INPUT = "a:[AAAA|0.1;BBBBBBB|-1.90824;CC|0.0]"; 

    public static void main(String[] args) { 
     Pattern p = Pattern.compile(REGEX); 
     // get a matcher object 
     Matcher m = p.matcher(INPUT); 
     List<String> sequences = new Vector<String>(); 
     while(m.find()) { 
      sequences.add(INPUT.substring(m.start(), m.end())); 
     } 
    } 
} 
相關問題