gpt4 book ai didi

c# - 从字符串中删除指定的标点符号

转载 作者:行者123 更新时间:2023-11-30 15:01:55 24 4
gpt4 key购买 nike

我有一个字符串,需要将其转换为字符串中每个单词的 String[]。但是,我不需要任何空格或任何标点符号,除了单词中的连字符和撇号。

示例输入:

您好!这是一个测试,它是一个更短的 1。- [ ] { } ___)

由输入构成的数组示例:

[“你好”,“this”,“is”,“a”,“test”,“and”,“it's”,“a”,“short-er”,“1”]

目前这是我试过的代码

(注意:当 string.First() 被调用时,第二个在程序中给出了一个错误):

private string[] ConvertWordsFromFile(String NewFileText)
{
char[] delimiterChars = { ' ', ',', '.', ':', '/', '|', '<', '>', '/', '@', '#', '$', '%', '^', '&', '*', '"', '(', ')', ';' };
string[] words = NewFileText.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
return words;
}

private string[] ConvertWordsFromFile(String NewFileText)
{
return Regex.Split(NewFileText, @"\W+");
}

第二个例子用下面的代码崩溃

private string GroupWordsByFirstLetter(List<String> words)
{
var groups =
from w in words
group w by w.First();
return FormatGroupsByAlphabet(groups);
}

具体来说,当 w.First() 被调用时。

最佳答案

从字符串中删除不需要的字符

string randomString = "thi$ is h@ving s*me inva!id ch@rs";
string excpList ="$@*!";

LINQ 选项 1

var chRemoved = randomString
.Select(ch => excpList.Contains(ch) ? (char?)null : ch);

var Result = string.Concat(chRemoved.ToArray());

LINQ 选项 2

var Result = randomString.Split().Select(x => x.Except(excList.ToArray()))
.Select(c => new string(c.ToArray()))
.ToArray();

关于c# - 从字符串中删除指定的标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13337733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com