回 帖 发 新 帖 刷新版面

主题:有关字符串的操作,求助!

我要实现字符串的最后一个字符提到第一个这样子不断循环。写了如下代码:

private string Changechar(string str)
        {
            char temp;
            int len=str.Length;
             temp=str[len-1];
            for(int i=len-1;i>=0;i--)
            {
                char s=str[i];
                str[i-1]=s;
                
            }
            str[0]=temp;

            return str;

        }
调试结果出现这样的问题:“无法对属性或索引器"string.this[int]"赋值--它是只读的”

错误出现在:str[i-1]=s;和str[0]=temp;两句上。


回复列表 (共6个回复)

沙发

给你一个技巧型的答案.
  
   string last=str[str.length-1];
   str[str.length-1]="";
   str=last+str;
   str=str.Trim();

板凳

问题出在char和string之间无法隐式转换. 

3 楼

xclw
你所提的方法确实挺好的,不过我所初始化的字符串串尾也有几个空字符,如果这样的话要怎么办?请指教!

4 楼

使用之间先使用Trim()清除一个空格不就可以了

5 楼

调用Trim()只清除一个空格吗?
不是把后面所有的空格都清了吗?

6 楼

建议你去把string 对象的相关属性方法都看一下
你的问题其实只用到了几个方法而已
substring 取子串
indexof 有好几个形式供选择
trim 有好几个形式供选择
remove removeat 等
看看吧 
呵呵

我来回复

您尚未登录,请登录后再回复。点此登录或注册