public static HashMap stringToHashMap(String str)
{
int count=0;
int equal_index=0;
int commaindex=0;
String key=null,val=null;
HashMap map=new HashMap();
int size=str.length();
if(str.charAt(0)=='{' && str.charAt(size-1)=='}')
{
System.out.println("Valid-Map object");
str=str.substring(1);
size=size-1;
while(size!=0)
{
equal_index=str.indexOf('=');
if(equal_index==-1 && count==0)
return null;
key=str.substring(0,equal_index);
str=str.substring(key.length()+1,size);
size=size-(key.length()+1);
commaindex=str.indexOf(",");
if(commaindex==-1)
commaindex=str.lastIndexOf('}');
val=str.substring(0,commaindex);
str=str.substring(val.length()+1,size);
size=size-(val.length()+1);
key=key.trim();
val.trim();
map.put(key, val);
count++;
}
}
else
throw new RuntimeException("Invalid string format--Cannot convert it to map");
return map;
}
是的,就像是一個真正的toString()從地圖,因爲我使用RabbitMQ的出版商類,發送消息到字節[],當消費者得到的消息再次返回byte []。我是類型轉換字節數組轉換爲字符串,再次我需要將類型字符串值轉換爲sortmap。 –
這些值是否始終是數字,或者它們是否可以是字符串或其他對象?如果它只是數字,它不應該太難,但如果'String's也被允許,你會得到令人討厭的東西:'city = {City =「}}}」}'(包含'}'的字符串) 。 –
是的,我嘗試過,但在最後我堅持跟着代碼 –