b="Name=Paul Roberts|Telephone=|Address=|City=LA";
我有一整天都在尝试获取没有等号和管道符号的输出属性值对的字符串。我有超过 4 个结果,但这是我想要实现的:输出(将每一对分开,因为我必须将这两个值放入某个表的字段中):
Name
Paul Roberts
Telephone
Address
City
LA
所以你可以注意到 VALUE 可以为 null(空)。
我尝试使用 SUBSTRING (也许有更好的方法)但得到错误的结果:
static String b="Name=Paul Roberts|Telephone=|Address=|City=LA";
public static void main(String[] args) {
System.out.println("b="+b);
String match = "=";
int i =0;
while((i=(b.indexOf(match,i)+1))>0)
{
String c=b.substring(0,i-1);
String d=b.substring(i);
String match2="|";
int k=b.indexOf(match2);
System.out.println("Attribute="+c);
int j=d.indexOf(match2);
if (j>-1)
{
String e=d.substring(0,j);
System.out.println("Value="+e);
}
if (k>-1)
{
b=b.substring(k+1,b.length());
}
}
}
我接近正确的结果,但这就是我得到的:
b=Name=Paul Roberts|Telephone=|Address=|City=LA
Attribute=Name
Value=Paul Roberts
Attribute=Telephone
Value=
Attribute=Address=|City
所以你可以注意到最后一行是不正确的,我错过了两行。这也是 SUBSTRING 最有效的方式吗?