2012-01-25 38 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())); 
     } 
    } 
} 
相关问题