我的生产数据里有这样一些数据
张三* 李四(教) 王二五(检) 欧阳乌龟(教)
请教下怎么样只把前面的名字截取出来?谢谢
张三* 李四(教) 王二五(检) 欧阳乌龟(教)
请教下怎么样只把前面的名字截取出来?谢谢
解决方案 »
- 关于java&DOM生成xml文件的问题
- 问一个servlet的问题
- hibernate方言设置问题
- 急请大侠出手相助!!
- ejb
- Java程序--->war包问题
- 如何在Tomcat中指定log文件的位置(使用log4j输出log信息)???
- 在做下载功能时总是报一下的错误"20:49:23,453 ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw ex
- @@@@@@ 在网页的模态窗口中能加Struts的标记吗??
- 关于RMI和EJB
- 100 分 求 ext ext.data.store 中参数问题
- java :table or view does not exist
public static void main(String args[])
{
String s = "张三* 李四(教) 王二五(检) 欧阳乌龟(教)";
String s1[] = s.split(" ");
for (String str : s1)
{
if (str.length() > 0)
{
str = str.replace("*", "");
int index = str.indexOf("(");
if (index > 0)
{
str = str.substring(0, str.indexOf("("));
}
System.out.println(str);
}
}
}
就是不规律呀,有的名字后面是*,有的是(教)或者(检)
所以想请教个通用的方法,只取前面的名字
我用的是mysql数据库
update datatable d
inner join (select username from datatable) t
on d.username = t.username
set d.username = substring(t.username,1,locate(t.username,'('))
然后,再同样的方法,将“*”去掉
如果此类如“*”等特殊符号太多的话,那就写一个存储过程处理
public static void main(String args[])
{
String s = "张三* 李四(教) 王二五(检) 欧阳乌龟(教)";
String s1[] = s.split("\\s{1,}");
for (String str : s1)
{
if(str.contains("(")){
str = str.substring(0, str.indexOf("("));
}
str = str.replace("*", "");
System.out.println(str);
}
}
}
String str = "张三2";
str = str.replace("*", ""); //去掉*
str = str.replace("2", ""); //去掉2
//下面是截去"("后面的部分
int index = str.indexOf("(");
if (index > 0){
str = str.substring(0, str.indexOf("("));
}