我需要一段代碼,通過它我可以從Java中的字符串中提取大寫字母的子字符串。 例如:如何從Java中的字符串中提取大寫字母串?
"a:[AAAA|0.1;BBBBBBB|-1.90824;CC|0.0]"
我需要提取CC
BBBBBBB
和AAAA
我需要一段代碼,通過它我可以從Java中的字符串中提取大寫字母的子字符串。 例如:如何從Java中的字符串中提取大寫字母串?
"a:[AAAA|0.1;BBBBBBB|-1.90824;CC|0.0]"
我需要提取CC
BBBBBBB
和AAAA
你可以用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
這應該證明正確的語法和方法。更多詳細信息可以在這裏找到http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html和http://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]+
部分是正則表達式,做了大部分工作。如果你想更多地瞭解它,有很多強大的正則表達式教程。
我認爲你應該做一個替換所有的正則表達式把你不想成爲一個分隔符的字符,或許是這樣的:
這可能是你在找什麼:
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()));
}
}
}
這是[正則表達式]工作(http://docs.oracle。 COM/JavaSE的/教程/本質/正則表達式/)。 – Jesper