c#添加标点符号
c# Adding punctuation marks
所以我有一个 c# 作业,其中我需要处理文本文件、用逗号和其他标点符号分隔单词。我选择这样做:
string Book1 = "@\..\Knyga1.txt";
string punctuation = " ,.?!;:\"";
string Read1 = File.ReadAllText(Book1);
string[] FirstFileWords = Read1.Split(punctuation.ToCharArray());
但是我 运行 遇到了一个问题...我的文本文件应该像书本一样,所以显然会有多行...有什么方法可以添加 "the enter key" 或任何我们称之为新行的东西(抱歉我的英语不好)标点符号之一?因为后面处理单个单词的时候,比如打印出最长的单词,第 2 3 行开头的单词在控制台占了两行。
只需将 \r\n
添加到列表中。那就是 "enter key" —— 即 "new line" —— 在 Windows OS' 中,它是 Environment.NewLine
.
返回的内容
string punctuation = " ,.?!;:\"\r\n";
\r
代表 "carriage return",\n
代表 "line feed",它们一起使用时称为 "new line"(如上文所述MSDN 页面和其他地方,例如 this SO answer).
此外,还有其他不常见的 "vertical whitespace" 字符(参见 以供参考)。所以,为了完整起见,我会这样做以包括 "vertical tab"、"form feed"、"next line"、"line separator" 和 "paragraph separator":
string punctuation = " ,.?!;:\"\r\n\v\f\u0085\u2028\u2029";
Here's a Wikipedia article 描述所有这些和其他空白字符。
要向您的组添加新行,您需要使用新行和回车 return 个字符:
" ,.?!;:\"\r\n";
如果你想放置行尾你需要\n
你可以尝试char.IsPunctuation找出所有标点符号
// scan all the characters an filter out punctuation ones (585):
string punctuation = string.Concat(Enumerable.Range(0, char.MaxValue)
.Select(c => (char)c)
.Where(c => char.IsPunctuation(c)));
您可能想要添加一些其他字符,从技术上讲,这些字符不是标点符号:space、换行符, 马车return:
string punctuation = " \r\n" +
string.Concat(Enumerable.Range(0, char.MaxValue)
.Select(c => (char)c)
.Where(c => char.IsPunctuation(c)));
所以我有一个 c# 作业,其中我需要处理文本文件、用逗号和其他标点符号分隔单词。我选择这样做:
string Book1 = "@\..\Knyga1.txt";
string punctuation = " ,.?!;:\"";
string Read1 = File.ReadAllText(Book1);
string[] FirstFileWords = Read1.Split(punctuation.ToCharArray());
但是我 运行 遇到了一个问题...我的文本文件应该像书本一样,所以显然会有多行...有什么方法可以添加 "the enter key" 或任何我们称之为新行的东西(抱歉我的英语不好)标点符号之一?因为后面处理单个单词的时候,比如打印出最长的单词,第 2 3 行开头的单词在控制台占了两行。
只需将 \r\n
添加到列表中。那就是 "enter key" —— 即 "new line" —— 在 Windows OS' 中,它是 Environment.NewLine
.
string punctuation = " ,.?!;:\"\r\n";
\r
代表 "carriage return",\n
代表 "line feed",它们一起使用时称为 "new line"(如上文所述MSDN 页面和其他地方,例如 this SO answer).
此外,还有其他不常见的 "vertical whitespace" 字符(参见
string punctuation = " ,.?!;:\"\r\n\v\f\u0085\u2028\u2029";
Here's a Wikipedia article 描述所有这些和其他空白字符。
要向您的组添加新行,您需要使用新行和回车 return 个字符:
" ,.?!;:\"\r\n";
如果你想放置行尾你需要\n
你可以尝试char.IsPunctuation找出所有标点符号
// scan all the characters an filter out punctuation ones (585):
string punctuation = string.Concat(Enumerable.Range(0, char.MaxValue)
.Select(c => (char)c)
.Where(c => char.IsPunctuation(c)));
您可能想要添加一些其他字符,从技术上讲,这些字符不是标点符号:space、换行符, 马车return:
string punctuation = " \r\n" +
string.Concat(Enumerable.Range(0, char.MaxValue)
.Select(c => (char)c)
.Where(c => char.IsPunctuation(c)));