首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • StringBuffer 中append的问题!编译通过,执行报错,救急! [已结贴,结贴人:ruolink]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 11:51:13 楼主
    StringBuffer sb = new StringBuffer();
    String s = "123456";
    for (int i = 0; i < s.length(); i++)
    {
      char c = s.charAt(i);
      if (c >= 0 && c <= 255)
      {
    sb.append(c);
      }
      else
      {……}
    }

    上述代码编译通过,但是执行的时候报错如下:
    SRVE0026E: [Servlet 错误]-[java.lang.StringBuffer: method append&#40;Ljava/lang/String&#59;&#41;Ljava/lang/AbstractStringBuilder&#59; not found]:java.lang.NoSuchMethodError: java.lang.StringBuffer: method append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder; not found

    我用的是JDK 1.5
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 12:03:071楼 得分:4
    没任何问题,应该是其他地方的错误
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • anqini
    • 等级:
    发表于:2008-05-17 12:23:212楼 得分:4
    这个代码没错,你把原程序发上来看看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 12:25:433楼 得分:3
    贴出来的代码的确没有问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 12:37:194楼 得分:0
    搞错了,我重新找了一个地方做测试,发现的确不是这个问题.其实是这样的,我做了一个自动转UTF8的函数如下:
    public static String toUtf8String(String s)
    {

    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    if (c >= 0 && c <= 255)
    {

    sb.append(c);
    }
    else
    {
    byte[] b;
    try {
    b = String.valueOf(c).getBytes("utf-8");
    } catch (Exception ex) {
    System.out.println(ex);
    b = new byte[0];
    }
    for (int j = 0; j < b.length; j++) {
    int k = b[j];
    if (k < 0)
    k += 256;
    sb.append("%" + Integer.toHexString(k).toUpperCase());

    }
    }
    }
    return sb.toString();

    }

    在1.4下编译,没有问题,在1.5下编译,就提示sb.append(c)处就提示‘未处理的异常类型IOException’,编译不通过,可是添加了抛出IOException后,编译通过,但是调用这个函数,依然报错如帖子开始所言。
    奇怪啊!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • anqini
    • 等级:
    发表于:2008-05-17 12:47:015楼 得分:3
    我这里是没事,你编译的版本和执行的版本是不是不吻合阿?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 13:06:056楼 得分:3
    试过了,这段代码没问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 14:05:487楼 得分:3
    我这里也没事.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 14:29:568楼 得分:0
    解决了,问题出在别的地方,这段代码没关系,解决问题第一。
    我用java.net.URLEncoder.encode(req.getParameter("newname"),"utf-8")转化了,没那么麻烦,避免了刚才那个问题,谢谢诸位!
    修改 删除 举报 引用 回复

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