怎么去掉逗号? 我在更新数据库列的时候有这样一个问题。数据库某列存的数据是以(10001,100002,100003)这种方式存的,存的都是一些用户的id,是以都号隔开的这种形式存的,当我删除某个人员的时候,这列也要更新一下,更新是跟新成功了,但是逗号怎么去掉比如我删除id为10001的用户,数据库的列跟新成功之后就变成(,10002,10003),就是这个逗号没有去掉,请问要用什么方式去掉啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我把更新的方法写贴上来给你们看看,看需要怎么修改public boolean update(List<?> userID) { boolean b = false; String hql; if (userID != null && userID.size() > 0) { for (int i = 0; i < userID.size(); i++) { hql = "SELECT s FROM tables WHERE s.memberId LIKE '%" + userID.get(i) + "%' AND s.id LIKE '4%'"; List<tables> list = this.getHibernateTemplate().find(hql); if (list.size() != 0) { for (int j = 0; j < list.size(); j++) { String str = (String) list.get(j).getMemberId(); int index = str.indexOf((String) userID.get(i)); if (index != -1) { str = str.replaceAll((String) userID.get(i), ""); list.get(j).setMemberId(str); try { this.getHibernateTemplate().update(list.get(j)); b = true; } catch (DataAccessException e) { e.printStackTrace(); b = false; } } } } else { b = true; } } } return b; } str = str.replaceAll((String) userID.get(i), "");这行后面你可以写个方法判断字符","是否在 字符串的开头 或者结尾出现 并把开头或结尾的","去掉 先判断下要删除的字段是否在取出数据的最后,然后再决定是否在replace中增加“,”就可以了 if (index != -1) {str = str.replaceAll((String) userID.get(i), "");str = str.replaceAll(str, "(,", "("); //去掉最前一个,str = str.replaceAll(str, ",)", ")"); //去掉最后一个, 索引下你要删除的ID,如果ID+1是逗号就一并删除。 中间的没去掉呢要不加 str = str.replaceAll(str, ",,", ")"); 要不这样str = str.replaceAll((String) userID.get(i)+",", "");str = str.replaceAll(","+(String) userID.get(i), ""); String comma = ","; // 判断str的开头是不是以逗号开头的,如果是,返回true boolean start = str.startsWith(comma); // 当start结果为true时,通过subString截取str,从索引1开始(字符串索引重0开始),截取到最后 if (start) { str = str.substring(1, str.length()); } // 判断str结尾是不是以头号结尾,如果是,返回true boolean end = str.endsWith(comma); // 当end的结果为true时,通过subString截取str,从索引0开始(字符串索引重0开始),截取到倒数第二位 if (end) { str = str.substring(0, str.length() - 1); } 中间的String commas = ",,"; // 判断截取后的str中间存不存在连续两个逗号结尾的短字符串,如果不包含返回-1 int commaNum = str.indexOf(commas); // 当commaNum的结果不为-1时,将连续两个逗号的短字符串替换为一个逗号 if (commaNum != -1) { str = str.replaceAll(commas, ","); } java.lang.NoClassDefFoundError: org/slf4j/Logger SSH的BBS论坛 怎么把递归改成循环 怎么删除包 大家帮我看看这个用UML图怎么表示 servlet listener 中能否实现页面跳转? 视频合并,怎么破啊 有看过j2ee tutorial 1.3中文版的高手么帮个忙,我按书里说明打包j2ee应用程序客户端,生成的jar文件老是加不进ConverterApp.ear文件中? 连上SQLServer2000 怎样往xml文件中动态的写入表单数据。 struts 2问题,实在没办法了~ 两台Windows系统与DOS系统电脑间数据传输
public boolean update(List<?> userID) {
boolean b = false;
String hql;
if (userID != null && userID.size() > 0) {
for (int i = 0; i < userID.size(); i++) {
hql = "SELECT s FROM tables WHERE s.memberId LIKE '%"
+ userID.get(i) + "%' AND s.id LIKE '4%'";
List<tables> list = this.getHibernateTemplate().find(hql);
if (list.size() != 0) {
for (int j = 0; j < list.size(); j++) {
String str = (String) list.get(j).getMemberId();
int index = str.indexOf((String) userID.get(i));
if (index != -1) {
str = str.replaceAll((String) userID.get(i), "");
list.get(j).setMemberId(str);
try {
this.getHibernateTemplate().update(list.get(j));
b = true;
} catch (DataAccessException e) {
e.printStackTrace();
b = false;
}
}
} } else {
b = true;
}
}
}
return b;
}
这行后面你可以写个方法判断字符","是否在 字符串的开头 或者结尾出现 并把开头或结尾的","去掉
str = str.replaceAll((String) userID.get(i), "");
str = str.replaceAll(str, "(,", "("); //去掉最前一个,
str = str.replaceAll(str, ",)", ")"); //去掉最后一个,
中间的没去掉呢
要不加 str = str.replaceAll(str, ",,", ")"); 要不这样
str = str.replaceAll((String) userID.get(i)+",", "");
str = str.replaceAll(","+(String) userID.get(i), "");
// 判断str的开头是不是以逗号开头的,如果是,返回true
boolean start = str.startsWith(comma);
// 当start结果为true时,通过subString截取str,从索引1开始(字符串索引重0开始),截取到最后
if (start) {
str = str.substring(1, str.length());
}
// 判断str结尾是不是以头号结尾,如果是,返回true
boolean end = str.endsWith(comma);
// 当end的结果为true时,通过subString截取str,从索引0开始(字符串索引重0开始),截取到倒数第二位
if (end) {
str = str.substring(0, str.length() - 1);
}
String commas = ",,";
// 判断截取后的str中间存不存在连续两个逗号结尾的短字符串,如果不包含返回-1
int commaNum = str.indexOf(commas);
// 当commaNum的结果不为-1时,将连续两个逗号的短字符串替换为一个逗号
if (commaNum != -1) {
str = str.replaceAll(commas, ",");
}