首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • jdk版本的问题 [无满意答案结贴,结贴人:jayleehom2000]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-27 20:48:25 楼主


    麻烦请教一下

    工程里面jdk1.5 要换成 jdk1.3后会报错

    报的是sting 里面没有 replaceAll 这个方法


    请问有什么解决的方法


    0  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-27 23:08:261楼 得分:0


    那最簡單就是自己實現該方法、或替換成其它的變通的方法,要不然就別用1.3。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-27 23:31:202楼 得分:0
    [code=Java]public class Test {

    public static void main(String[] args) {
    String toReplace = "abcdefgabcdefgabcdefgabcdefg";
    String target = "efg";
    String replacement = "@";
    toReplace = replaceAll(toReplace, target, replacement);
    System.out.println("Result: "+toReplace);
    }
    /**
    * 替换字符串中所有匹配的字符
    * @param toReplace 待替换字符串
    * @param target 要替换掉的字符串
    * @param replacement 替换的字符串
    * @return
    */
    public static String replaceAll(String toReplace, String target, String replacement){
    String returnStr = new String(toReplace);
    for(;;){
    int index = returnStr.indexOf(target);
    if(index==-1){
    break;
    }else{
    returnStr=returnStr.substring(0, index)+replacement+returnStr.substring(index+target.length());
    }
    }
    return returnStr;
    }
    }code]
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-27 23:32:193楼 得分:0
    再发一遍,上面没排版好
    Java code
    public class Test { public static void main(String[] args) { String toReplace = "abcdefgabcdefgabcdefgabcdefg"; String target = "efg"; String replacement = "@"; toReplace = replaceAll(toReplace, target, replacement); System.out.println("Result: "+toReplace); } /** * 替换字符串中所有匹配的字符 * @param toReplace 待替换字符串 * @param target 要替换掉的字符串 * @param replacement 替换的字符串 * @return */ public static String replaceAll(String toReplace, String target, String replacement){ String returnStr = new String(toReplace); for(;;){ int index = returnStr.indexOf(target); if(index==-1){ break; }else{ returnStr=returnStr.substring(0, index)+replacement+returnStr.substring(index+target.length()); } } return returnStr; } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-27 23:33:274楼 得分:0
    还是没有排版好
    Java code
    public class Test { public static void main(String[] args) { String toReplace = "abcdefgabcdefgabcdefgabcdefg"; String target = "efg"; String replacement = "@"; toReplace = replaceAll(toReplace, target, replacement); System.out.println("Result: "+toReplace); } /** * 替换字符串中所有匹配的字符 * @param toReplace 待替换字符串 * @param target 要替换掉的字符串 * @param replacement 替换的字符串 * @return */ public static String replaceAll(String toReplace, String target, String replacement){ String returnStr = new String(toReplace); for(;;){ int index = returnStr.indexOf(target); if(index==-1){ break; }else{ returnStr=returnStr.substring(0, index)+replacement+returnStr.substring(index+target.length()); } } return returnStr; } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-28 09:21:005楼 得分:0


    先谢谢啊``

    但是我还是有一点不明白

    在JDK1.5中

    public String replaceAll(String regex, String replacement) {
    return Pattern.compile(regex).matcher(this).replaceAll(replacement);
        }
    string 的 replaceAll 方法不是repalceAll(string ,string )吗??

    麻烦你给我详细讲一下

    本人菜鸟一个

    再次谢上```


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-28 09:41:036楼 得分:0
    不同时期的jdk当然会 有不同。
    有些类在新版本中就会删除掉。
    你们怎么还有1.3的应用存在。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-28 09:49:537楼 得分:0
    这个replaceAll和我上面写的代码中的replaceAll不是同一个东西。一个是属于String类的,我写的replaceAll(String,String,String)是兼容jdk1.3的一个工具方法。因为开发人员不能随意添加删除String类中的方法,所以如果写成replaceAll(String,String)的话,原字符串这个参数无法获得。
    在项目中你可以把上面的replaceAll(String,String,String)方法放到一个工具类中,每次需要字符串替换的时候就调用。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-28 10:05:268楼 得分:0



    没办法

    我也不想用jdk1.3啊`````


    谢谢```
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-28 10:23:599楼 得分:0
    在问一下

    public String[] split(String regex, int limit) {
    return Pattern.compile(regex).split(this, limit);
        }

    split(string , int )这个方法在1.3中应该怎么搞啊``


    谢谢``
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-28 23:14:5910楼 得分:0
    回复9楼
    Java code
    import java.util.ArrayList; import java.util.List; public class Tester { public static void main(String[] args) { String toSplit="abcdefghijkefglmopefgqrs"; String target = "efg"; String[] result = split(toSplit, target, 2); for(int i=0;i<result.length;i++){ System.out.println(i+"\t"+result[i]); } } public static String[] split(String toSplit, String target, int limit){ List list = new ArrayList(); for(int index = toSplit.indexOf(target);limit>1&&index!=-1;limit--,index = toSplit.indexOf(target)){ list.add(toSplit.substring(0, index)); toSplit = toSplit.substring(index+target.length()); } list.add(toSplit); return (String[])list.toArray(new String[0]); } }
    修改 删除 举报 引用 回复

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