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
したがって、最後の行が正しくなく、2 つの行が欠落していることがわかります。また、これはSUBSTRINGで最も効率的な方法ですか?