如何在Java中从字符串中提取大写子字符串?
我需要一段代码,用它可以从Java中的字符串中提取大写的子字符串。 例如:如何在Java中从字符串中提取大写子字符串?,java,regex,string,substring,extraction,Java,Regex,String,Substring,Extraction,我需要一段代码,用它可以从Java中的字符串中提取大写的子字符串。 例如: "a:[AAAA|0.1;BBBBBBB|-1.90824;CC|0.0]" 我需要提取CCBBBBBBB和AAAA这应该说明正确的语法和方法。更多详情可在此处和 String myStr=“a:[AAAA | 0.1;bbbbb |-1.90824;CC | 0.0]”; Pattern大写=Pattern.compile(“[A-Z]+”); Matcher Matcher=大写.Matcher(myStr); 列
"a:[AAAA|0.1;BBBBBBB|-1.90824;CC|0.0]"
我需要提取
CC
BBBBBBB
和AAAA
这应该说明正确的语法和方法。更多详情可在此处和
String myStr=“a:[AAAA | 0.1;bbbbb |-1.90824;CC | 0.0]”;
Pattern大写=Pattern.compile(“[A-Z]+”);
Matcher Matcher=大写.Matcher(myStr);
列表结果=新建ArrayList();
while(matcher.find()){
results.add(matcher.group());
}
用于(字符串s:结果){
系统输出打印项次;
}
[A-Z]+
部分是执行大部分工作的正则表达式。如果你想更深入地了解它,有很多强大的正则表达式教程。如果你只想提取所有大写字母,请使用[a-Z]+
,如果你只想使用大写子字符串,这意味着如果你有小写字母,你不需要它(HELLO
可以,但是HELLO
不可以),然后使用\b[A-Z]+\b
我认为您应该执行“全部替换正则表达式”操作,将不需要的字符转换为分隔符,可能类似于以下内容:
这可能就是你想要的:
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()));
}
}
}
import java.util.regex.Pattern;
导入java.util.regex.Matcher;
公共类MatcherDemo{
私有静态最终字符串REGEX=“[A-Z]+”;
私有静态最终字符串输入=“a:[AAAA | 0.1;bbbbb |-1.90824;CC | 0.0]”;
公共静态void main(字符串[]args){
Pattern p=Pattern.compile(REGEX);
//获取匹配器对象
匹配器m=p.Matcher(输入);
列表序列=新向量();
while(m.find()){
add(INPUT.substring(m.start(),m.end());
}
}
}
您可以使用。唯一的问题可能是空字符串,但很容易将其过滤掉:
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
这是一个.Word boundary的作业-您可以阅读更多有关它的内容,实际上正则表达式的使用方式是“\\b[^a-Z]+\\b”,而“JOHN DOE是一个名字”的输出是JOHN DOE使用string.split在Java中这还从混合大小写字符串返回单大写字符;
AAAA
BBBBBBB
CC