首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 一个字符串处理问题 [已结贴,结贴人:zhangfengsummer]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 23:13:06 楼主
    有如下字符串:
        00300028.客户咨询.020201.业务/市场营


    如何得到“客户咨询”这段中文
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 23:27:581楼 得分:1
    int start = str.indexOf(".");
    int end = str.indexOf(".",start);
    sstr = str.subString(start,end);
    具体的可能要考虑下边界
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yiyi_wx
    • 等级:
    发表于:2008-05-21 23:41:032楼 得分:1
    1
    Java code
    String str = "00300028.客户咨询.020201.业务/市场营"; int start = str.indexOf("客户咨询"); str = str.substring(start,(start+4)); System.out.println(str);

    2
    Java code
    String str = "00300028.客户咨询.020201.业务/市场营"; String[] arr = str.split("\\."); String newStr = ""; for(int i=0;i<arr.length;i++){ if(arr[i].equals("客户咨询")){ newStr = arr[i]; break; } }System.out.println(newStr);

    如果字符串中有多个"客户咨询"就要稍做改动了~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 01:07:183楼 得分:1
    LZ的意思应该是获取这个位置的串把

    如果字段基本形状就是这样的

    那就
    "00300028.客户咨询.020201.业务/市场营".split('.')[1];

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:03:304楼 得分:6
    Java code
    System.out.println("00300028.客户咨询.020201.业务/市场营".replaceAll("^.*?\\.([\u4e00-\u9fa5]*).*$","$1"));
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:36:215楼 得分:1
    String[] str = s.split(".");
    str[1]就是你要的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 21:36:326楼 得分:0
    的确,3楼已经说的很清楚了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-23 08:35:327楼 得分:0
    来看看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-23 09:14:358楼 得分:0
    split方法,别的不多说了.LZ可以查资料了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ilrxx
    • 等级:
    发表于:2008-05-23 11:25:069楼 得分:1
    引用 5 楼 jiexun1985 的回复:
    String[] str = s.split(".");
    str[1]就是你要的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-23 13:02:0410楼 得分:1
    引用 2 楼 yiyi_wx 的回复:
    1
    Java codeString str="00300028.客户咨询.020201.业务/市场营";intstart=str.indexOf("客户咨询");
          str=str.substring(start,(start+4));
          System.out.println(str);
    2
    Java codeString str="00300028.客户咨询.020201.业务/市场营";
          String[] arr=str.split("\\.");
          String newStr="";for(inti=0;i <arr.length;i++){if(arr[i].equals("客户咨询")){
                  newStr=arr[i];break;
        …


    无语,以上的代码和 str=“客户咨询”有什么区别???

    拜托楼主,把你的问题描述的清楚一些,好不好?
    你到底要得到“客户咨询”,还是要得到第一个句号和第二个句号之间的字符串?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-23 13:11:4211楼 得分:1
    String str = "00300028.客户咨询.020201.业务/市场营";
    String[] st = str.split("\\.");
    String newstr = st[1];
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-23 20:19:5612楼 得分:1
    使用正则表达式去匹配应该是个好主意.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-23 21:22:1213楼 得分:6
    Java code
    import java.util.regex.*; public class Change { public static void main(String[] args) { Pattern p=Pattern.compile(".*\\.(.*)\\..*\\..*"); Matcher m=p.matcher("00300028.客户咨询.020201.业务/市场营 "); while(m.find()) { System.out.println(m.group(1)); } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-16 14:24:3114楼 得分:0
    谢谢大家,已经解决了。。前段时间比较忙,不好意思没有来得及回复。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved