一个字符串想弄成Properties 存储,该如何处理?字符串:dayId="20061012" recordId="0" timeRecv="2006/10/1221:52:21" timeGen="2006/10/12 21:52:21" domain="" devDomVer2="0"这样该如何处理呢?
解决方案 »
- 迷宫生成器 问题
- xml,properties 做配置文件的区别
- 急,在线等一个Java下雨小动画
- IE在发送汉字的时候采用的编码是什么?
- i=request.getInputStream()和i2=request.getInputStream();有联系吗?为什么使用i后,i2变成空了?
- 怎样遍历哈希表?
- 如何不要让TextField中的内容不被覆盖
- 关于线程的一个小问题
- 如何处理(kill)死线程?
- 编译JAVA程序的时候,如果需要的JAR不在CLASSPATH,有什么办法能成功编译吗???
- 我想实现一个流的输入输出,看书看了半天啦,东凑西凑凑出个程序,可是不能实现,5555555555555555,晕死了。谁能帮我看看
- 从汇率小程序说接口应用...
Properties p = new Properties();
p.setProperty("dayId", "20061012");
p.setProperty("recordId", "0");
p.setProperty("timeRecv", "2006/10/1221:52:21" );
p.setProperty("timeGen", "2006/10/12 21:52:21");
p.setProperty("domain", "");
p.setProperty("devDomVer2", "0");
System.out.println(p);
Quietly through ...
Quietly through ...
Quietly through ...
看下问题就知道了。一个类似于1楼的字符串。将其自动转换成properties格式。
{
try{
FileInputStream fis=new BufferReader(msg);
}
catch(Exception ex)
{
ex.getStackTrace();
}
Properties prop=new Properties(fis);
return prop;
}类似这样的处理程序。
* @param args
*/
public static void main(String[] args) {
String str="dayId=\"20060112\"recordId=\"0\"time=\"2006/10/1221:52:21\"";
System.out.println(str);
String[] arg =str.split("\"");
Properties p = new Properties();
for(int i=0;i<arg.length ;i+=2) {
String temp1 = arg[i].substring(0,arg[i].length()-1);
String temp2 = arg[i+1];
p.setProperty(temp1, temp2);
}
System.out.println(p);
}
}不知道对不对,希望高手出现.....
如果要是象你那么弄我就不需要弄成properties来处理了。况且字符串里边没有"\"这个符号。有处理这个时间早都把那个处理好了
recordId=0
timeRecv=2006/10/1221:52:21
timeGen=2006/10/12 21:52:21
domain=
devDomVer2=0
楼主想要这个效果?1.去掉引号
2.(字段间以空格为分隔符的话)就把空格换成回车,存入*.properties
3.可能会出现中文字符无法写入的情况,需要将汉字转换成unicode编码,
4.才疏学浅,如有纰漏,请见谅。。
你看过字符串有这样赋值的吗,那你要怎么样,不懂
从syslog里边的获得的字符串就是那个样子的。若能按照你那样改那个程序就不需要用properties来处理了
已知properties文件的格式,所以只要从头到尾检查",\"除外,每2个换为\n,然后直接写入文件就可以了
String str = "dayId=\"20061012\"" +
"recordId=\"0\"" +
"timeRecv=\"2006/10/12 =21:52:21\" " +
"timeGen = \"2006/10/12 21:52:21\" " +
"domain=\"\" " +
"hello=\"test\\\"adfad\"" +
"devDomVer2=\"0\"";
System.out.println(str);
String[] strs = str.split("(?:\\s+|(?<=\"))(?=[^\"]+\\s*=\\s*\")");
Properties pro = new Properties();
for(int i = 0; i < strs.length; i++) {
int index = strs[i].indexOf('=');
String key = strs[i].substring(0, index).trim();
String value = strs[i].substring(index + 1).trim().replaceAll("^\"|\"$", "");
pro.put(key, value);
}
pro.list(System.out);
}
}
MSG.MENUITEM.TOTLEBUG=\u969c\u5bb3\u7d71\u8a08
MSG.MENUITEM.TRANBUG=\u969c\u5bb3\u8868\u7ffb\u8a33
MSG.MENUITEM.USERMANAGE=\u7528\u6237\u7ba1\u7406
MSG.MENUITEM.GROUPMANAGE=\u7ec4\u7ba1\u7406
MSG.MENU.BUGPROJECT=\u969c\u788d\u8868\u51fa\u529b
就按照上面的文件形式存储就好了,一个名字,一个值,中间用等号,和hashtable的形式差不多,键值对。