Java 如何在特定单词后拆分
在字符串中查找Java 如何在特定单词后拆分,java,Java,在字符串中查找^和\u live时,我必须拆分单词。我只能拆分匹配的^,但我必须在匹配^和\u live时拆分。结果应该是 [ab,cb,db,qw] 怎么办 String usergroup="ab_live^cb_live^db_live^qw_live"; String[] userGroupParts = usergroup.split("\\^"); List<String> listUserGrou
^
和\u live
时,我必须拆分单词。我只能拆分匹配的^
,但我必须在匹配^
和\u live
时拆分。结果应该是
[ab,cb,db,qw]
怎么办
String usergroup="ab_live^cb_live^db_live^qw_live";
String[] userGroupParts = usergroup.split("\\^");
List<String> listUserGroupParts = Arrays.asList(userGroupParts);
Set<String> SMGroupDetails = new HashSet<String>(listUserGroupParts);
String usergroup=“ab\u live ^cb\u live ^db\u live ^qw\u live”;
字符串[]userGroupParts=usergroup.split(\\^);
List listUserGroupParts=Arrays.asList(userGroupParts);
Set SMGroupDetails=newhashset(listUserGroupParts);
我们可以说拆分分隔符应该是\u live^或者仅仅是\u live在行的末尾
这就是为什么正则表达式必须由| live和capturing group(\^ |$)组成,其中包含两个由|(or)分隔的选项:
第一个备选方案“^逐字匹配字符^(在前面使用转义字符),第二个备选方案$在行尾断言位置
String[] userGroupParts = usergroup.split("_live(\\^|$)");
我们可以说分割分隔符应该是\u live^或者仅仅是\u live在行的末尾 这就是为什么正则表达式必须由| live和capturing group(\^ |$)组成,其中包含两个由|(or)分隔的选项: 第一个备选方案“^逐字匹配字符^(在前面使用转义字符),第二个备选方案$在行尾断言位置
String[] userGroupParts = usergroup.split("_live(\\^|$)");
这应该可以
public static void main(String[] args) {
String usergroup = "ab_live^cb_live^db_live^qw_live";
String[] userGroupParts = usergroup.split("\\^");
for (int i=0; i<userGroupParts.length; i++) userGroupParts[i] = userGroupParts[i].split("\\_")[0];
for (String s : userGroupParts) System.out.println(s);
}
publicstaticvoidmain(字符串[]args){
字符串usergroup=“ab\u live ^cb\u live ^db\u live ^qw\u live”;
字符串[]userGroupParts=usergroup.split(\\^);
对于(inti=0;i这应该可以
public static void main(String[] args) {
String usergroup = "ab_live^cb_live^db_live^qw_live";
String[] userGroupParts = usergroup.split("\\^");
for (int i=0; i<userGroupParts.length; i++) userGroupParts[i] = userGroupParts[i].split("\\_")[0];
for (String s : userGroupParts) System.out.println(s);
}
publicstaticvoidmain(字符串[]args){
字符串usergroup=“ab\u live ^cb\u live ^db\u live ^qw\u live”;
字符串[]userGroupParts=usergroup.split(\\^);
对于(inti=0;i我不会使用类java.lang.String
的方法,而是使用
您希望创建一个列表,列出出现在文字字符^
之后和字符串\u live
之前的所有字母。下面的代码实现了这一点。(代码后面的解释。)
/*所需的导入:
*java.util.ArrayList
*java.util.List
*java.util.regex.Matcher
*java.util.regex.Pattern
*/
字符串usergroup=“ab\u live ^cb\u live ^db\u live ^qw\u live”;
Pattern=Pattern.compile(\\^?(\\w+)\u live);
Matcher Matcher=pattern.Matcher(用户组);
List listUserGroupParts=new ArrayList();
while(matcher.find()){
添加(matcher.group(1));
}
System.out.println(listUserGroupParts);
正则表达式,即上述代码中方法compile
的参数,查找以下内容:
文字字符^
,后跟
至少一个单词字符,后跟
文本字符串\u live
请注意,第2部分被括号包围,这意味着它被称为一个组
while
循环搜索usergroup
正则表达式的下一个匹配项,每次找到匹配项时,它都提取组的内容并将其添加到
运行上述代码时的输出为:
[ab,cb,db,qw]
我不会使用类java.lang.String
的方法,而是使用
您希望创建一个列表,列出出现在文字字符^
之后和字符串\u live
之前的所有字母。下面的代码实现了这一点。(代码后面的解释。)
/*所需的导入:
*java.util.ArrayList
*java.util.List
*java.util.regex.Matcher
*java.util.regex.Pattern
*/
字符串usergroup=“ab\u live ^cb\u live ^db\u live ^qw\u live”;
Pattern=Pattern.compile(\\^?(\\w+)\u live);
Matcher Matcher=pattern.Matcher(用户组);
List listUserGroupParts=new ArrayList();
while(matcher.find()){
添加(matcher.group(1));
}
System.out.println(listUserGroupParts);
正则表达式,即上述代码中方法compile
的参数,查找以下内容:
文字字符^
,后跟
至少一个单词字符,后跟
文本字符串\u live
请注意,第2部分被括号包围,这意味着它被称为一个组
while
循环搜索usergroup
正则表达式的下一个匹配项,每次找到匹配项时,它都提取组的内容并将其添加到
运行上述代码时的输出为:
[ab,cb,db,qw]
请分享更多详细信息,以便其他人可以从您的answer@NicoHaase,是的,我对我的解决方案做了一些解释。请分享更多细节,以便其他人可以从您的解决方案中学习answer@Nico哈斯,是的,我对我的解决方案做了一些解释,“这”是什么?请分享更多详细信息,以便其他人可以从您的答案中学习。这是不言自明的:您首先按^分割,然后循环分割得到的字符串,只保留下划线前的一位……然后通过编辑它将所有这些解释添加到您的答案中应该不会太难。谢谢,它工作正常,“这”是什么?请分享更多详细信息,以便其他人可以从您的答案中学习。这是不言自明的:您首先按^分割,然后循环分割得到的字符串,只保留下划线前的一位……然后通过编辑它将所有这些解释添加到您的答案中应该不会太难。谢谢,它工作正常,