Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1351|回复: 0

'征求更好的實现方法... ◆

[复制链接]

该用户从未签到

发表于 2011-11-1 12:09:40 | 显示全部楼层 |阅读模式
    需求:
    格式:123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;.....(很duo很多...)
    輸chu:123abc|456abc|&%$#|una89
    我De实现方法如下,歡迎大家贴出好的想法
    var str="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";
    var re=/([^,]*),([^;]*);/g,txt,rs=[];
    while((txt=re.exec(str))!=null){
    rs.push(txt[1]);1
    }
    alert(rs.join("|"));
Huan迎来到Javaxue習者论壇,轉载请注明地址:http://www.javaxxz.com.
回复

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:09:47 | 显示全部楼层

Re:

何必用正则
    split(';')
    然后在split(',')[0]
    再拼接就是了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:09:56 | 显示全部楼层

Re:

Js代码
   

   
   
    var arr = "123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;".split(/,\\d{4}\\-\\d\\d\\-\\d\\d \\d\\d:\\d\\d;/);   
    arr.pop();   
    alert(arr.join("|"));  
    var arr = "123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;".split(/,\\d{4}\\-\\d\\d\\-\\d\\d \\d\\d:\\d\\d;/);
    arr.pop();
    alert(arr.join("|"));
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:10:02 | 显示全部楼层

Re:

用replace就行了。為什么要先split 再 join , 不用切了再連,绕弯了。
    Java代码
   

   
   
    var str="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";   
    str=str.replace(/,\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2};/g,'|').replace(/\\|$/,'')  
    var str="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";
    str=str.replace(/,\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2};/g,'|').replace(/\\|$/,'')
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:10:09 | 显示全部楼层

Re:

用replace就行了。为什么要先split 再 join , 不用切了再连,绕弯了。
    Java代码
   

   
   
    var str="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";   
    str=str.replace(/,\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2};/g,'|').replace(/\\|$/,'')  
    var str="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";
    str=str.replace(/,\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2};/g,'|').replace(/\\|$/,'')
    也是哈。。。 通常这种数据解析出来都會作处理,或者存下来供其它逻辑使用,所以习惯性了……
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:10:19 | 显示全部楼层

Re:

需求:
    格式:123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;.....(很多很多...)
    输出:123abc|456abc|&%$#|una89
    我的实現方法如下,欢迎大家贴出好的想法
    var str="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";
    var re=/([^,]*),([^;]*);/g,txt,rs=[];
    while((txt=re.exec(str))!=null){
    rs.push(txt[1]);
    }
    alert(rs.join("|"));


    ,日期時间; 替换成| 就搞定了,没必要太复杂
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:10:26 | 显示全部楼层

Re:

需求:
    格式:123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;.....(很多很多...)
    输出:123abc|456abc|&%$#|una89
    我的实現方法如下,歡迎大家贴出好的想法
    var str="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";
    var re=/([^,]*),([^;]*);/g,txt,rs=[];
    while((txt=re.exec(str))!=null){
    rs.push(txt[1]);
    }
    alert(rs.join("|"));


    ,日期时间; 替换成| 就搞定了,没必要太復雜
    都他娘的是高手..
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:10:33 | 显示全部楼层

Re:

需求:
    格式:123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;.....(很多很多...)
    输出:123abc|456abc|&%$#|una89
    我的实现方法如下,欢迎大家贴出好的想法
    var str="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";
    var re=/([^,]*),([^;]*);/g,txt,rs=[];
    while((txt=re.exec(str))!=null){
    rs.push(txt[1]);
    }
    alert(rs.join("|"));


    ,日期时間; 替换成| 就搞定了,没必要太复杂
    都他娘的是高手..
    我不是他娘。。
   
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:10:40 | 显示全部楼层

Re:

同意4楼的feige05
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-1 12:10:48 | 显示全部楼层

Re:

采用split()方法實现的具体代码。此代码兼容分号前面有1个或者多个逗号的形式。譬如:aa,bb;aa,bb;  aa,aa,bb;aa,aa,bb; 等等。
    代码
    package cn.Aaron.j2se;
    public class Sample {
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str ="123abc,2011-09-08 11:22;456abc,2011-09-08 11:22;8&%$#,2011-09-08 11:22;una89,2011-09-08 11:22;";
    System.out.println(function(str));
    }
    public  static String function(String s){
    StringBuffer sb = new StringBuffer();
    //先判断字符串是否长度大于0
    if(s.length()>0){
    if(s.indexOf(",")==-1 || s.indexOf(";")==-1){
    return "字符串输入格式不对";
    }
    if(s.indexOf(",")>s.indexOf(";")){
    return "字符串输入格式不对";
    }
    if(s.indexOf(",")!=-1 && s.indexOf(";")!=-1){
    //根据分號將字符串分成若干个小字符串。
    String[] str1 = s.split(";");
    for(int i=0;i<str1.length;i++){
    //对于每一个以分号为分隔符的数组中的元素在以逗號分隔
    String str2[] = str1.split(",");
    for(int j =0;j<str2.length-1;j++){
    sb.append(str2[j]);
    sb.append("|");
    }
    }
    }
    return sb.toString();
    }
    else
    return "字符串不存在";
    }
    }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-8 13:07 , Processed in 0.390895 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表