public String deal(String str){
String[] records = str.split("|");
Map recordMap = new HashMap();
for(int i=0;i<records.length;i++){
String[] fields = records[i].split(",");
recordMap.put(fields[0],records[i]);
}
//修改
recordMap.put("2","2,0,标题88");
//删除
recordMap.remove("2");Iterator keys = recordMap.keySet().iterator();
StringBuffer sb = new StringBuffer();
while(keys.hasNext()){
sb.append("|");
sb.append(recordMap.get(keys.next()).toString());
}
if(sb.length()>1){
return sb.subString(1);
}else{
return "";
}
}
String[] records = str.split("|");
Map recordMap = new HashMap();
for(int i=0;i<records.length;i++){
String[] fields = records[i].split(",");
recordMap.put(fields[0],records[i]);
}
//修改
recordMap.put("2","2,0,标题88");
//删除
recordMap.remove("2");Iterator keys = recordMap.keySet().iterator();
StringBuffer sb = new StringBuffer();
while(keys.hasNext()){
sb.append("|");
sb.append(recordMap.get(keys.next()).toString());
}
if(sb.length()>1){
return sb.subString(1);
}else{
return "";
}
}
解决方案 »
- 遍历List<TCardTypeEntity>泛型 出错
- 请教:关于java窗体居中的
- 讨论:除了ssh外大家还用哪些框架,各有什么优劣
- 一个菜鸟问题---myeclipse配置tomcat5.5.20服务器
- 请问hibernate能否动态映射数据库表
- 非常奇怪double相加,会出现不准确的小数位,怎么解决?
- 有兄弟用过JbossIDE吗?
- ***JAVA面试题目(去了两家公司,都是这样的题目)***
- JBoss在安装配置时后运行出现问题,请进来指点!谢谢!
- RESIN服务器升级问题
- 谁能告诉我Structs里的FormBean(一个封装类)什么时候有值,什么情况下有值。
- 请问在hibernate中怎样把mysql的varbinary映射成String?
private String str; public static void main(String args[])
{
//8,0,标题1|2,0,标题2|6,0,标题3|4,0,标题2|1,1,标题5|5,2,标题6|3,2,标题2
Test t = new Test();
t.setStr("8,0,标题1|2,0,标题2|6,0,标题3|4,0,标题2|1,1,标题5|5,2,标题6|3,2,标题2");
t.update("2","标题88");
System.out.println(t.getStr());
t.remove("2");
System.out.println(t.getStr()); }
public void setStr(String value)
{
str = value;
}
public String getStr()
{
return str;
}
public String update(String id, String title)
{
if (str == null || str.trim().length()==0)
return str;
String[] strArray = str.split("\\|");
if (strArray != null && strArray.length > 0)
{
for (int i=0; i<strArray.length; i++)
{
String[] strEach = strArray[i].split(",");
if (strEach != null && strEach.length == 3 && strEach[0].equals(id))
{
strEach[2] = title;
strArray[i] = strEach[0] + "," + strEach[1] + "," + strEach[2];
}
}
}
StringBuffer strBuf = new StringBuffer();
for (int i=0; i<strArray.length; i++)
{
if (strArray[i] != null)
{
if (strBuf.length()>0)
strBuf.append("|");
strBuf.append(strArray[i]);
}
}
str = strBuf.toString();
return str;
}
public String remove(String id)
{
if (str == null || str.trim().length()==0)
return str;
String[] strArray = str.split("\\|");
if (strArray != null && strArray.length > 0)
{
for (int i=0; i<strArray.length; i++)
{
String[] strEach = strArray[i].split(",");
if (strEach != null && strEach.length == 3 && strEach[0].equals(id))
{
strArray[i] = null;
}
}
}
StringBuffer strBuf = new StringBuffer();
for (int i=0; i<strArray.length; i++)
{
if (strArray[i] != null)
{
if (strBuf.length()>0)
strBuf.append("|");
strBuf.append(strArray[i]);
}
}
str = strBuf.toString();
return str;
}
} 运行后的输出结果:
8,0,标题1|2,0,标题88|6,0,标题3|4,0,标题2|1,1,标题5|5,2,标题6|3,2,标题2
8,0,标题1|6,0,标题3|4,0,标题2|1,1,标题5|5,2,标题6|3,2,标题2
如果要求顺序,修改如下:
public String deal(String str){
String[] records = str.split("\\|");//这个开始写错了,|是正则关键字,刚才忘记了
Map recordMap = new HashMap();
List keyList = new ArrayList(); //add key list
for(int i=0;i<records.length;i++){
String[] fields = records[i].split(",");
keyList.add(fields[0]); //add
recordMap.put(fields[0],records[i]);
}
//修改
recordMap.put("2","2,0,标题88");
//删除
recordMap.remove("2");//Iterator keys = recordMap.keySet().iterator(); //remove
Iterator keys = keyList().iterator(); //add
StringBuffer sb = new StringBuffer();
while(keys.hasNext()){
sb.append("|");
sb.append(recordMap.get(keys.next()).toString());
}
if(sb.length()>1){
return sb.subString(1);
}else{
return "";
}
}