wnczwl369 2011-04-14 22:41
浏览 192
已采纳

字符ASCII右移几位后,怎么没有变化

/****题目说明:
函数Rdata()实现从文件in.dat中读取一篇英文文章,存入到字符串数组
string中,请编写函数CharRight(),其函数的功能是:以行为单位把字
符串中的最后一个字符的ASCII值右移4位后加倒数第二个字符的ASCII值,
得到最后一个新的字符,倒数第二个字符的ASCII值右移4位后加倒数第
三个字符的ASCII值,得到倒数第二个新的字符,依次类推,一直处理到
第二个字符,第一个字符的ASCII值加原最后一个字符的ASCII值,得到
第一个新的字符,得到的新字符分别存放在原字符串对应得位置上。最后
已处理的字符串仍按行重新存入字符串数组string中,最后调用函数Wdata(),
把结果string输出到文件out1.dat中。
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和
空格)。

我的部分代码(java)如下:怎么处理以后的结果与原来一样啊????
public static void change(String str[]){
// str1=new String[100];
int length=0;
char ch;//保存每行的最后一个字符

    for(int i=0;i<str.length-1;i++){
        length=str[i].length();
        ch=(Character)(Object)str[i].charAt(str[i].length()-1);
        for(int j=length-1;j>0;j--){
            try{
            str[i].replace(str[i].charAt(j), (char)((str[i].charAt(j)>>4)+str[i].charAt(j-1)));
            str[i].replace(str[i].charAt(0), ch);
            }catch(StringIndexOutOfBoundsException e){
                e.printStackTrace();
            }
        }
    }
}
  • 写回答

1条回答 默认 最新

  • turing-complete 2011-04-14 23:00
    关注

    一个低级错误,String类的对象是不能被改变值的。
    [code="java"]
    str[i]=str[i].replace(str[i].charAt(0), ch);
    [/code]

    你要用类似于这种操作才可以,重新赋值!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能