【发布时间】:2020-01-13 07:28:19
【问题描述】:
我正在尝试将一个单词的首字母移到C#上的end。 用户将输入一个单词。
并且单词的第一个字母会出现在单词的末尾。
示例:
输入: hello
输出: elloh
【问题讨论】:
-
自己写过代码吗?
-
请向我们展示你的努力
-
您应该向我们展示您已经尝试过的内容...否则我们如何帮助您?
我正在尝试将一个单词的首字母移到C#上的end。 用户将输入一个单词。
并且单词的第一个字母会出现在单词的末尾。
示例:
输入: hello
输出: elloh
【问题讨论】:
这个呢:
var str = "hello";
var result = string.Join("", str.Skip(1)) + str[0];
但是,您需要先将以下内容添加到您的 using 指令中:
using System.Linq;
【讨论】:
您可以在Substring 的帮助下尝试简单的string 操作:
input.Substring(0, 1) - to get the 1st letter (or just input[0])
input.Substring(1) - to get all letters except 1st - all letters starting from 1
代码:
string input = "hello";
// To be on the safe side, let's check if user input is an empty string
string output = !string.IsNullOrEmpty(input)
? input.Substring(1) + input.Substring(0, 1) // or input.Substring(1) + input[0]
: input; // or throw exception (C# 7.0+)
Linq 版本(仅供参考);让我们使用 ?? 和 ?. 运算符,以防我们得到 null 或空 ("") 字符串:
using System.Linq;
...
string output = string.Concat(input?.Skip(1) ?? "") + input?.FirstOrDefault();
【讨论】:
最简单的方法:
string output = input.Substring(1) + input[0];
【讨论】:
public static string MoveChar(this string text, int oldIndex, int newIndex)
{
try
{
var chars = new List<Char>( text.ToCharArray(0, text.Length));
var value = chars[oldIndex];
chars.RemoveAt(oldIndex);
chars.Insert(newIndex,value);
return new string(chars.ToArray());
}
catch (Exception e)
{
throw e;
}
}
【讨论】: