字符串中存储这样的东西
BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BACKGROUND: #ffffff; HEIGHT: 100%
有办法把这里面” : “冒号后面和” ; ”分号中间的字符串去出来吗。
也就是一个字符串中从开头到结束取出冒号和分号之间的所有值存储进另一个字符串数组中
BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BACKGROUND: #ffffff; HEIGHT: 100%
有办法把这里面” : “冒号后面和” ; ”分号中间的字符串去出来吗。
也就是一个字符串中从开头到结束取出冒号和分号之间的所有值存储进另一个字符串数组中
String[] groups = src.split(";");
Map map = new HashMap();
for(String group : groups){//jdk5.0语法
String[] pair = group.split(":");
map.put(pair[0],pair[1]);
}
现在map里边有你所有想要的东西。
java.util.regex.Pattern p=java.util.regex.Pattern.compile(":[^:;]*;");
java.util.regex.Matcher m=p.matcher(src);
while(m.find())
{
System.out.println(m.group());
}
String a[][]=new String[3][3];
String str="BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BACKGROUND: #ffffff; HEIGHT: 100%";
out.println(str+"<br>");
StringTokenizer st=new StringTokenizer(str,";");
int i=0,j=0;
while(st.hasMoreTokens()) {
StringTokenizer temp=new StringTokenizer(st.nextToken(),":");
while(temp.hasMoreTokens()) {
a[i][j]=temp.nextToken();
out.println("a["+i+"]["+j+"]=" +a[i][j]+ "<br>");
j++;
}
i++;
j=0;
};
String sssSTR="BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BACKGROUND: #ffffff; HEIGHT: 100%";
out.println(sssSTR+"<br>");
StringTokenizer sss = new StringTokenizer(sssSTR,";");
int x=0,y=0;
while(sss.hasMoreTokens()) {
StringTokenizer ssstemp=new StringTokenizer(sss.nextToken(),":");
while(ssstemp.hasMoreTokens()){
s[x][y]=ssstemp.nextToken();
out.println("s["+x+"]["+y+"]=" +s[x][y]+ "<br>");
y++;
};
x++;
y=0;
};
-------------------------
正则:
java.util.regex.Pattern p=java.util.regex.Pattern.compile(":[^:;]*;");
java.util.regex.Matcher m=p.matcher(src);
while(m.find())
{
System.out.println(m.group());
}
用":[^:;]*;"这个正则式就可以取出
: #999999 1px solid;
: #999999 1px solid;
: #ffffff;
但是注意我只想要冒号和分号内的东西。还有办法写个正则式把冒号和分号中如果有三个的也分开取出来吗?也就是第一行#999999 1px solid三个分开
java.util.regex.Pattern p=java.util.regex.Pattern.compile(":[^:;]*;");
java.util.regex.Matcher m=p.matcher(src);
while(m.find())
{
System.out.println(m.group());
}
可惜这个正则式带有冒号和分号在里面的,我想只要分号和冒号之间的
:[^:;]*;