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]

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报