想要删除单词中除第一个字符之外的所有字符
本文关键字:字符 第一个 删除 单词中 | 更新日期: 2023-09-27 17:55:46
我是c#的新手,我需要修剪一个有很多单词的句子。我只需要所有单词中的首个字符。例如
如果一句话是这样的。
输入 : Bharat Electrical Limited
=> 输出 : BEL
如何在 C# 中完成此操作?
提前致谢
试试
string sentence = "Bharat Electrical Limited";
var result = sentence.Split(' ').Aggregate("", (current, word) => current + word.Substring(0, 1));
编辑:这是一个简短的解释:
sentence.Split(' ')
根据空格 (' ') 将字符串拆分为元素
.Aggregate("", (current, word) => current + word.Substring(0, 1));
是一个 linq 表达式,用于遍历上面的每个单词检索对其执行操作,并且
word.Substring(0, 1)
返回每个单词的第一个字母
这是使用正则表达式可以轻松完成的事情:
s = Regex.Replace(s, @"('S)'S*'s*", "$1");
这有效地匹配连续的非空格字符,后跟空格,并用其第一个字符替换整个序列。
做这样的事情——
string sentence = "Bharat Electrical Limited";
//Split the words
var letters = sentence.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
//Take firsst letter of every word
var myAbbWord = letters.Aggregate(string.Empty, (current, letter) => current + letter.First());
myAbbWord
应为您显示 BEL。
这是解决方案。
我希望它有所帮助。
string str1 = "Bharat Electrical Limited";
var resultList = str1.Split(' ');
string result = resultList.Aggregate(String.Empty, (current, word) => current + word.First());
您要做的第一件事 将字符串拆分为单词,然后从每个单词中获取第一个字母。您可以通过如下所示的简单 for 循环来执行此操作:
string inputStr = "Bharat Electrical Limited";
List<char> firstChars = new List<char>();
foreach (string word in inputStr.Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries))
{
firstChars.Add(word[0]); // Collecting first chars of each word
}
string outputStr = String.Join("", firstChars);
这将是这样做的捷径:
string inputStr = "Bharat Electrical Limited";
string shortWord = String.Join("", inputStr.Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries).Select(x => x[0]));
如果每个字符串中的第一个字符不是 Caps,则可以使用以下任一选项。
- 在执行操作之前,将输入到标题大小写的句子中。
为此,您可以使用以下代码:
inputStr = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(inputStr.ToLower());
- 将字符转换为大写,同时我们从单词中收集字符,
这可以通过以下方式实现:
firstChars.Add(char.ToUpper(word[0])); // For the first case
.Select(x => char.ToUpper(x[0])) // For the second case
在这里,您可以找到上述所有案例的工作示例
最简单的方法是:
string inputStr = "Bharat Electrical Limited";
string result = new String(inputStr.Split(' ').Select(word => (word[0])).ToArray());
// BEL
您需要将using System.Linq;
添加到源文件中。
逻辑是:
将字符串拆分为数组或单词(由空格分隔),然后通过选择每个字符串的第一个字符来投影此数组。结果是第一个字符的数组。然后使用字符串重载构造函数获取 char 数组,构造结果字符串。
看起来对你更友好
string intput = "Bharat Electrical Limited";
string output = string.Join( "",intput.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries)
.Select(a => a.First()));
首先用空格拆分输入量,然后在string
上使用First()
扩展名来获取字符串的第一个字符
使用此方法
string inputStr = "Bharat Electrical Limited";
var arrayString = string.Join("", inputStr.Split(' ').Select(x => x[0]));