我有一个代码,它为txt文件中使用的所有字母创建一个数组,名为“failas.txt”:
using System;
using System.Linq;
using System.Globalization;
using System.Collections.Generic;
using System.Collections;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
string failas = "failas.txt";
string rodymas = File.ReadAllText(failas, Encoding.GetEncoding(1257));
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine(rodymas);
char[] masyvas = rodymas.ToArray().Reverse().Where(c => !char.IsWhiteSpace(c)).ToArray();
foreach (char c in masyvas)
{
Console.Write(c + ",");
}
Console.ReadLine();
}
}
它反转阵列。但是我需要它不要反转,而是按字母顺序排序并排除,
,.
,:
,"
等符号。基本上排除所有不是一封信。
答案 0 :(得分:0)
解决反向和按字母顺序排列的问题:
char[] masyvas = rodymas.ToArray().Where(c => !char.IsWhiteSpace(c)).ToArray();
masyvas.Sort(); //Will sort in place alphabetically.
对于角色,您可以使用Regex
Regex rgx = new Regex("[^a-zA-Z0-9 -]");
str = rgx.Replace(str, "");
另见: How do I remove all non alphanumeric characters from a string except dash?
答案 1 :(得分:0)
char[] masyvas = rodymas.ToArray().OrderBy(o=>o).Where(c => !char.IsWhiteSpace(c)).ToArray();
这适合你。
答案 2 :(得分:0)
这条线怎么样?
char[] masyvas = rodymas.Where(Char.IsLetter).OrderBy(Char.ToLower).ToArray();