PPBBPPPBPPBBPBPBBBBPBBPBPPBBPBBBBPPBBPBBBPPPBBBBPPBPP
如何分割成以下字符串?
PP,BB,PPP,B,PP,BB,P,B,P,BBBB,P,BB,P,B,PP,BB,P,BBBB,PP,BB,P,BBB,PPP,BBBB,PP,B,PP
string s = "PPBBPPPBPPBBPBPBBBBPBBPBPPBBPBBBBPPBBPBBBPPPBBBBPPBPP";
string[] result = Regex.Matches(s, "P+|B+").Cast<Match>().Select(x => x.Value).ToArray();
string s = "PPBBPPPBPPBBPBPBBBBPBBPBPPBBPBBBBPPBBPBBBPPPBBBBPPBPP";
string[] result = Regex.Matches(s, "P+|B+").Cast().Select(x => x.Value).ToArray();
输入字符串
循环检查字符,以字符长度为循环结束条件
以第一个字符为标杆
如果和标杆相同,输出该字符
遇到不同于标杆的字符,进入if语句
输出,同时将该字符变成标杆
好像标杆要求不能为变量,不过大概思路就是这样了
也可以从头到尾循环,遇到相邻不同的就输出一个,
public static String[] splitString(String str)
{
String string="";
for(int i=0;i<str.length()-1;i++)
{
if(str.substring(i, i+1).equals(str.substring(i+1, i+2)))
{
string=string+str.substring(i, i+1)+str.substring(i+1, i+2);
}
else
{
string=string+str.substring(i, i+1)+"_";
}
}
return string.split("_");
}