替换两个字符串的第一个和最后一个字符的任务

时间:2017-08-30 03:23:49

标签: c#

我正在做练习,但也提供解决方案,没有解释解决方案中的代码,也无法理解代码。希望我能帮助理解它

练习: 编写一个C#程序,从给定的字符串创建一个新的字符串,其中第一个和最后一个字符将改变它们的位置。

字符串: w3resource 蟒

预期输出 e3resourcw nythoP

解决方案:

public class Exercise16 {
  static void Main(string[] args)
        {
            Console.WriteLine(first_last("w3resource"));
            Console.WriteLine(first_last("Python"));
            Console.WriteLine(first_last("x"));
        }
       public static string first_last(string ustr)
        {
          // code that I don't understand
           return ustr.Length > 1
           ? ustr.Substring(ustr.Length - 1) + ustr.Substring(1, ustr.Length - 2) + ustr.Substring(0, 1) : ustr;
            }
    }

P.S - 我是C#的初学者,但不是整体编程

2 个答案:

答案 0 :(得分:1)

?运算符在C#中也称为conditional operator。它就像一个微型if语句,让您在单个表达式中表达整个语句。在这种情况下,它用于验证字符串中至少有两个字符,否则它将返回单个字符串本身。

对于Substring语句,请考虑每次调用时从ustr中提取哪些字符...

  • ustr.Substring(ustrLength - 1):提取最后一个字符
  • ustr.Substring(1, ustr.Length - 2):从第二个到第二个提取所有字符
  • ustr.Substring(0, 1):提取第一个字符

按照上面的顺序连接时,您可以看到结果字符串将以原始字符串的最后一个字符开头,后跟所有字符,从第二个到第二个到最后一个,最后是第一个字符。

答案 1 :(得分:0)

基本上它说如果长度大于1则执行:

ustr

如果不是,则返回此字符串变量:

"?:"

这是条件运算符{{1}}:Microsoft Docs Conditional Operator.

的示例

子字符串表示您获得特定范围的字符串字符。例如,您可以查看Substring Examples.