从txt文件排序数组
本文关键字:数组 排序 文件 txt | 更新日期: 2023-09-27 18:16:26
我有一个代码,它为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();
}
}
它反转数组。然而,我不需要它反转,而是按字母顺序排序,并排除符号,如,
, .
, :
, "
等,基本上排除一切不是一个字母。
char[] masyvas = rodymas.ToArray().OrderBy(o=>o).Where(c => !char.IsWhiteSpace(c)).ToArray();
解决反向和字母顺序问题:
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, "");
参见:如何从字符串中删除除破折号以外的所有非字母数字字符?
这一行呢?
char[] masyvas = rodymas.Where(Char.IsLetter).OrderBy(Char.ToLower).ToArray();