求助:Java字符串处理
请高手指点
一个字符串格式如下:string = "a=0|b=xxx|c=xxx|d=|e=|f=xxx";
其中a,b,c,d,e,f的值可以为空,要获取a,b,c,d,e,f的值,怎样处理比较好?
我的实现如下:
String string = "a=0|b=xxx|c=xxx|d=|e=|f=xxx";
String a = null;
String b = null;
String c = null;
String d = null;
String e = null;
String f = null;
String[] content = string.split("\\|");
for(int i=0;i<content.length;i++){
String[] express = content[i].trim().split("=");
if(content[i].contains("=") && express.length <= 2){
if("a".equals(express[0])){
if(express.length == 1){
a = "";
}else{
a = express[1];
}
}else if("b".equals(express[0])){
if(express.length == 1){
b = "";
}else{
b = express[1];
}
}else if("c".equals(express[0])){
if(express.length == 1){
c = "";
}else{
c = express[1];
}
}else if("d".equals(express[0])){
if(express.length == 1){
d = "";
}else{
d = express[1];
}
}else if("e".equals(express[0])){
if(express.length == 1){
e = "";
}else{
e = express[1];
}
}else if("f".equals(express[0])){
if(express.length == 1){
f = "";
}else{
f = express[1];
}
}
}
}
------解决方案--------------------
Java code
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Message {
public static void main(String args[]){
String string="a=0|b=xxx|c=xxx|d=|e=|f=xxx";
HashMap<String,String> map =new HashMap<String,String>();
String[] temp = new String[2];
Pattern p = Pattern.compile("([^\\|]*)=([^\\|]*)");
Matcher m = p.matcher(string);
while(m.find()){
temp[0]=m.group(1);
temp[1]=m.group(2);
System.out.println(temp[0]+"="+temp[1]);
map.put(temp[0], temp[1]);
}
System.out.println(map);
}
}
//运行结果
a=0
b=xxx
c=xxx
d=
e=
f=xxx
{f=xxx, d=, e=, b=xxx, c=xxx, a=0}