我正在尝试将单词的第一个字母移动到C#上的结尾。 用户将输入一个单词。
单词的第一个字母将到达单词的末尾。
示例:
输入:hello
输出: elloh
答案 0 :(得分:2)
那呢:
var str = "hello";
var result = string.Join("", str.Skip(1)) + str[0];
但是,您首先需要在using指令中添加以下内容:
using System.Linq;
答案 1 :(得分:1)
您可以在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();
答案 2 :(得分:0)
最简单的方法:
string output = input.Substring(1) + input[0];
答案 3 :(得分: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;
}
}