我试图将String拆分为:
"Stack Overflow #forum #website";
- > "Stack Overflow" "#forum #website"
我尝试使用分割函数,例如:str.split("( )#", 2);
,但输出类似于:"Stack Overflow" "forum #website"
。
似乎()
不起作用,我该怎么做才能解决这个问题?
提前致谢。
答案 0 :(得分:4)
你需要使用积极的先行断言。
str.split("\\s(?=#)", 2);
小解释:
\\s
匹配任何类型的空格字符。(?=#)
正向前瞻,断言匹配即space
应该跟#
。#forum
之前的空格匹配,java根据该空格字符进行拆分。 或
str.split(" (?=#)", 2);
答案 1 :(得分:0)
public class split {
public static void main(String args[]){
String Str = new String("Stack Overflow #forum #website");
//**********that's what is to be done ***************************
System.out.println("Return Value :" );
for (String retval: Str.split("(?=#)", 2)){
System.out.println(retval);
}
//***********THAT'S WHAT YOU WERE DOING ******************************
System.out.println("");
System.out.println("Return Value :" );
for (String retval: Str.split("#", 2)){
System.out.println(retval);
}
}
}