我刚刚开始接触C#,在主函数中调用类Test的方法changeArr,它的参数是一个字符串,现在需要把它转化成字符串数组,该怎么写呢?哎,入门比较难呀~~~~~,我看的书上也没有例子,郁闷中……我的Test类是这样写的,请大家注意加注释的部分,问题出在这里。
public class Test{
public void changeArr(string str)
{
string arr[]=new string[]str;//在这里我想用传递过来的字符串初始化数组arr,但是不知道该怎么写。请大家帮助我!我的写法是错误的
string s;
s=arr[arr.Length-1];
Console.Write(s);
for(int i=0;i<arr.Length-1;i++)
arr[i]=arr[i]+3;
for(int i=0;i<arr.Length-1;i++)
Console.Write(arr[i]);
}
}

解决方案 »

  1.   

    你想做什么?
    你想把string转换为string的数组?
    你的转换思路是什么?说出来,就知道怎么做了。
      

  2.   

    不懂你具体是什么意思,如果是要改变一个 string 中每个字符 char 的值,下面的代码可以给你提示:public class Test{
      public void changeArr(string str)
      {
        char arr[]=str.ToCharArray();// 将 string 改成 char 类型的数组
        char s;
        s=arr[arr.Length-1]; // 可以用 s=str[str.Length-1] 代替。
        Console.Write(s.ToString());
        for(int i=0;i<arr.Length-1;i++)   // 同样可以用 for(int i=0;i<str.Length-1;i++)
          arr[i]=(char)((int)arr[i]+3);   //             str[i] = (char)((int)str[i]+3);
        for(int i=0;i<arr.Length-1;i++)   // 同样可以用 for(int i=0;i<str.Length-1;i++)
          Console.Write(arr[i].ToString());//            Console.Write(str[i].ToString();
       }
    }
    尽管可以使用 str[i] 来访问 string 中每个字符,但是由于 string 是引用类型,这样操作和导致传入的参数 str 也会被改变。
      

  3.   

    string str="1,2,3";
    string[] arr=new string[]{str};
      

  4.   

    Projects\ConsoleApplication1\Class1.cs(31): 无法将类型“int”隐式转换为“char”
      

  5.   

    字符串本来就是char的数组,比如我们可以对字符串作如下操作:  string myString="abcdddkjfjdk";
      char c = myString[2];
    那么问题就解决了:
      public string[] ChangeToArr(string str)
      {
           string[] result = new string[str.Length];
           for(int i=0; i < str.Length; i++)
                result[i] = str[i].ToString();
           return result;
      }
      

  6.   

    原题如下:假设有一段程序对字符串进行加密加密后的字符串的第一个字符是原字符串的最后一个字符其余的每个字符是对应的原字符串中的前一个字符的值加上3比如welcome末尾的字符为ewelcom依次加上3后成为zhofrp故加密后的结果为zhofrp程序由用户任意输入一个字符串加密后输出
      

  7.   

    public class Test{
    public void changeArr(string str)
    {
    string arr[]=new string[str.length];
    for(int i=0;i<str.Length;i++)
             {
        arr[i]=str[i];
             }
             //那么这就转换过来了
    }
    }
      

  8.   

    to LZ:
    原题如下:假设有一段程序对字符串进行加密加密后的字符串的第一个字符是原字符串的最后一个字符其余的每个字符是对应的原字符串中的前一个字符的值加上3比如welcome末尾的字符为ewelcom依次加上3后成为zhofrp故加密后的结果为zhofrp程序由用户任意输入一个字符串加密后输出.
    ================================================
    你的比如错了吧? 按照题意,welcome加密后的字符串应该是: ezhofrp
    这个加密的算法如下:        public string Encrypt(string source)
            {
                StringBuilder sb = new StringBuilder(source.Length);
                sb.Append(source[source.Length - 1]);
                for (int i = 1; i < source.Length; i++)
                {
                    sb.Append( (char)((short)source[i - 1] + 3) );
                }
                return sb.ToString();
            }