为什么这个用c#编写的反向脚本不起作用?

时间:2016-11-04 16:20:44

标签: c# string reverse

我用ubuntu制作这个c#代码。

///Uses swap method to reverse; need to traverse only half of the array.
public static stringReverseString2(string str)
{
   char[] chars = str.ToCharArray();
   for (int i =0, j = str.Length - 1; i < j; i++, j--)
   {
    char c = chars[i];
    chars[i] = chars[j];
    chars[j] = c;
   }
   return new string(chars);
}

但是当我编译它时,我得到了这个输出

c++1.c:2:1: error: expected unqualified-id before ‘public’
public static stringReverseString2(string str)
^

我该如何解决?

抱歉,我是c#

的新手

4 个答案:

答案 0 :(得分:1)

您的方法缺少返回值

public static后,您需要指定要返回的类型:string

public static string stringReverseString2(string str)

或者您只需在名称

中添加空格即可
public static string ReverseString2(string str)

答案 1 :(得分:0)

将您的方法更改为:

 public static string StringReverseString2(string str)
{
    char[] chars = str.ToCharArray();
    for (int i = 0, j = str.Length - 1; i < j; i++, j--)
    {
        char c = chars[i];
        chars[i] = chars[j];
        chars[j] = c;
    }
    return new string(chars);
}

答案 2 :(得分:0)

你正在进行就地字符串反转,所以为什么要创建一个新的字符串

改为使用字符串构建器,并向方法签名

添加返回类型
public static StringBuilder  ReverseString2(StringBuilder str)
{
   for (int i =0, j = str.Length - 1; i < j; i++, j--)
   {
    var c = str[i];
    str[i] = str[j];
    str[j] = c;
   }
   return str;
}

答案 3 :(得分:0)

我认为您从public static string ReverseString2(string str)错误地删除了空格。

你也可以这样做。

public static string ReverseString2(string str)
{
    char[] chars = str.ToCharArray();
    Array.Reverse(chars);
    //for (int i = 0, j = str.Length - 1; i < j; i++, j--)
    //{
    //    char c = chars[i];
    //    chars[i] = chars[j];
    //    chars[j] = c;
    //}
    return new string(chars);
}